Add vsync.

This commit is contained in:
Jonathan Schleifer 2012-08-26 17:11:32 +02:00
parent a819fe0b81
commit 569fcf994b
3 changed files with 10 additions and 2 deletions

View file

@ -32,7 +32,8 @@ typedef enum ogk_display_flags_t {
OGK_DISPLAY_FLAGS_RESIZABLE = 0x02, OGK_DISPLAY_FLAGS_RESIZABLE = 0x02,
OGK_DISPLAY_FLAGS_OPENGL = 0x04, OGK_DISPLAY_FLAGS_OPENGL = 0x04,
OGK_DISPLAY_FLAGS_OPENGL_3 = 0x08, OGK_DISPLAY_FLAGS_OPENGL_3 = 0x08,
OGK_DISPLAY_FLAGS_OPENGL_3_ONLY = 0x10 OGK_DISPLAY_FLAGS_OPENGL_3_ONLY = 0x10,
OGK_DISPLAY_FLAGS_VSYNC = 0x20
} ogk_display_flags_t; } ogk_display_flags_t;
@interface OGKDisplay: OFObject @interface OGKDisplay: OFObject

View file

@ -81,6 +81,11 @@ static OFDataArray *allegroDisplays = nil;
if (flags & OGK_DISPLAY_FLAGS_OPENGL_3_ONLY) if (flags & OGK_DISPLAY_FLAGS_OPENGL_3_ONLY)
allegroFlags |= ALLEGRO_OPENGL_FORWARD_COMPATIBLE; allegroFlags |= ALLEGRO_OPENGL_FORWARD_COMPATIBLE;
if (flags & OGK_DISPLAY_FLAGS_VSYNC)
al_set_new_display_option(ALLEGRO_VSYNC, 1, ALLEGRO_SUGGEST);
else
al_set_new_display_option(ALLEGRO_VSYNC, 0, ALLEGRO_SUGGEST);
al_set_new_display_flags(allegroFlags); al_set_new_display_flags(allegroFlags);
display = al_create_display(size.width, size.height); display = al_create_display(size.width, size.height);

View file

@ -87,7 +87,9 @@ OF_APPLICATION_DELEGATE(TestMain)
- (void)applicationDidFinishLaunching - (void)applicationDidFinishLaunching
{ {
ogk_display_flags_t flags = OGK_DISPLAY_FLAGS_RESIZABLE; ogk_display_flags_t flags =
OGK_DISPLAY_FLAGS_RESIZABLE |
OGK_DISPLAY_FLAGS_VSYNC;
display = [[OGKDisplay alloc] initWithSize: of_dimension(640, 480) display = [[OGKDisplay alloc] initWithSize: of_dimension(640, 480)
position: of_point(200, 200) position: of_point(200, 200)