- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0, 0, -8);
+ if(!cur_part) return;
+
+ part_time = time_msec - cur_part->start_time;
+ if(part_time < cur_part->in_time) {
+ float t = (float)part_time / cur_part->in_time;
+
+ if(prev_part) {
+ long prev_part_time = time_msec - prev_part->start_time;
+ if(prev_part->draw_out) {
+ prev_part->draw_out(prev_part_time, t);
+ } else {
+ prev_part->draw(prev_part_time);
+ }
+ }
+
+ if(cur_part->draw_in) {
+ cur_part->draw_in(part_time, t);
+ } else {
+ cur_part->draw(part_time);
+ }
+ } else {
+ prev_part = 0;
+ cur_part->draw(part_time);
+ }
+
+ /* no-srgb gamma correction fallback */
+ if(!opt.srgb) {
+ glBindTexture(GL_TEXTURE_2D, post_fbtex[0].id);
+ glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, win_width, win_height);