Add vsync.
This commit is contained in:
parent
a819fe0b81
commit
569fcf994b
3 changed files with 10 additions and 2 deletions
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Reference in a new issue