#define WIDTH 1280
#define HEIGHT 720
-#include <GL/glew.h>
+#include <epoxy/gl.h>
#include <SDL/SDL.h>
#include <SDL/SDL_error.h>
#include <SDL/SDL_events.h>
#include <setjmp.h>
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
#include <sys/time.h>
#include <time.h>
#include "util.h"
#include "widgets.h"
+using namespace movit;
+
unsigned char result[WIDTH * HEIGHT * 4];
float lift_theta = 0.0f, lift_rad = 0.0f, lift_v = 0.0f;
SDL_SetVideoMode(WIDTH, HEIGHT, 0, SDL_OPENGL);
SDL_WM_SetCaption("OpenGL window", NULL);
- init_movit(".", MOVIT_DEBUG_ON);
+ CHECK(init_movit(".", MOVIT_DEBUG_ON));
printf("GPU texture subpixel precision: about %.1f bits\n",
log2(1.0f / movit_texel_subpixel_precision));
+ printf("Wrongly rounded x+0.48 or x+0.52 values: %d/510\n",
+ movit_num_wrongly_rounded);
+ if (movit_num_wrongly_rounded > 0) {
+ if (movit_shader_rounding_supported) {
+ printf("Rounding off in the shader to compensate.\n");
+ } else {
+ printf("No shader roundoff available; cannot compensate.\n");
+ }
+ }
unsigned img_w, img_h;
unsigned char *src_img = load_image(argc > 1 ? argv[1] : "blg_wheels_woman_1.jpg", &img_w, &img_h);
printf("%d frames in %.3f seconds = %.1f fps (%.1f ms/frame)\n",
frame, elapsed, frame / elapsed,
1e3 * elapsed / frame);
+
+ // Reset every 100 frames, so that local variations in frame times
+ // (especially for the first few frames, when the shaders are
+ // compiled etc.) don't make it hard to measure for the entire
+ // remaining duration of the program.
+ if (frame == 100) {
+ frame = 0;
+ start = now;
+ }
#endif
}
return 0;