Added SetFPS() and SetWindowVSync()
This commit is contained in:
@@ -487,12 +487,16 @@ ul, #myUL {
|
|||||||
|
|
||||||
<li><a href="setmouserelative.html" target="main">SetMouseRelative</a></li>
|
<li><a href="setmouserelative.html" target="main">SetMouseRelative</a></li>
|
||||||
|
|
||||||
|
<li><a href="setwindowvsync.html" target="main">SetWindowVSync</a></li>
|
||||||
|
|
||||||
<li><a href="flashwindow.html" target="main">FlashWindow</a></li>
|
<li><a href="flashwindow.html" target="main">FlashWindow</a></li>
|
||||||
|
|
||||||
<li><a href="windowisgrabbed.html" target="main">WindowIsGrabbed</a></li>
|
<li><a href="windowisgrabbed.html" target="main">WindowIsGrabbed</a></li>
|
||||||
|
|
||||||
<li><a href="preupdate.html" target="main">PreUpdate</a></li>
|
<li><a href="preupdate.html" target="main">PreUpdate</a></li>
|
||||||
|
|
||||||
|
<li><a href="setfps.html" target="main">SetFPS</a></li>
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -169,9 +169,11 @@ rc_restoreWindow( )
|
|||||||
rc_grabInput( GRABINPUT_FLAG )
|
rc_grabInput( GRABINPUT_FLAG )
|
||||||
rc_setWindowAlwaysOnTop( SETWINDOWALWAYSONTOP_FLAG )
|
rc_setWindowAlwaysOnTop( SETWINDOWALWAYSONTOP_FLAG )
|
||||||
rc_setMouseRelative( SETMOUSERELATIVE_FLAG )
|
rc_setMouseRelative( SETMOUSERELATIVE_FLAG )
|
||||||
|
rc_setWindowVSync( SETWINDOWVSYNC_FLAG )
|
||||||
rc_flashWindow( FLASHWINDOW_FLAG )
|
rc_flashWindow( FLASHWINDOW_FLAG )
|
||||||
rc_windowIsGrabbed( )
|
rc_windowIsGrabbed( )
|
||||||
rc_preUpdate( )
|
rc_preUpdate( )
|
||||||
|
rc_setFPS( SETFPS_FPS_VAL )
|
||||||
rc_canvasOpen( OPENCANVAS_W, OPENCANVAS_H, OPENCANVAS_VIEWPORT_X, OPENCANVAS_VIEWPORT_Y, OPENCANVAS_VIEWPORT_W, OPENCANVAS_VIEWPORT_H, OPENCANVAS_MODE )
|
rc_canvasOpen( OPENCANVAS_W, OPENCANVAS_H, OPENCANVAS_VIEWPORT_X, OPENCANVAS_VIEWPORT_Y, OPENCANVAS_VIEWPORT_W, OPENCANVAS_VIEWPORT_H, OPENCANVAS_MODE )
|
||||||
rc_canvasClose( CLOSECANVAS_C_NUM )
|
rc_canvasClose( CLOSECANVAS_C_NUM )
|
||||||
rc_canvasOpen3D( OPENCANVAS3D_VIEWPORT_X, OPENCANVAS3D_VIEWPORT_Y, OPENCANVAS3D_VIEWPORT_W, OPENCANVAS3D_VIEWPORT_H, OPENCANVAS3D_MODE )
|
rc_canvasOpen3D( OPENCANVAS3D_VIEWPORT_X, OPENCANVAS3D_VIEWPORT_Y, OPENCANVAS3D_VIEWPORT_W, OPENCANVAS3D_VIEWPORT_H, OPENCANVAS3D_MODE )
|
||||||
|
|||||||
@@ -45,6 +45,8 @@ sub RestoreWindow( )
|
|||||||
sub GrabInput(flag)
|
sub GrabInput(flag)
|
||||||
sub SetWindowAlwaysOnTop( flag )
|
sub SetWindowAlwaysOnTop( flag )
|
||||||
sub SetMouseRelative(flag)
|
sub SetMouseRelative(flag)
|
||||||
|
sub SetWindowVSync(flag)
|
||||||
function FlashWindow( flag )
|
function FlashWindow( flag )
|
||||||
function WindowIsGrabbed( )
|
function WindowIsGrabbed( )
|
||||||
Sub PreUpdate( )
|
Sub PreUpdate( )
|
||||||
|
Sub SetFPS(fps_val)
|
||||||
|
|||||||
@@ -921,7 +921,7 @@ int main(int argc, char * argv[])
|
|||||||
//DEBUG START
|
//DEBUG START
|
||||||
//rc_filename = "/home/n00b/projects/bu/constraint_demo/main.bas";
|
//rc_filename = "/home/n00b/projects/bu/constraint_demo/main.bas";
|
||||||
//rc_filename = "/home/n00b/Music/Simple 3D Platformer/main.bas";
|
//rc_filename = "/home/n00b/Music/Simple 3D Platformer/main.bas";
|
||||||
//rc_filename = "/home/n00b/projects/rcbasic_alpha3/test_project/main.bas";
|
rc_filename = "/home/n00b/Programs/RCBasic_v400_Linux64/examples/Constraint/main.bas";
|
||||||
//DEBUG END
|
//DEBUG END
|
||||||
|
|
||||||
//enable_presets = true;
|
//enable_presets = true;
|
||||||
|
|||||||
@@ -438,10 +438,14 @@ void init_embedded_functions()
|
|||||||
add_embedded_arg("flag", ID_TYPE_NUM);
|
add_embedded_arg("flag", ID_TYPE_NUM);
|
||||||
embed_function("SetMouseRelative", ID_TYPE_SUB);
|
embed_function("SetMouseRelative", ID_TYPE_SUB);
|
||||||
add_embedded_arg("flag", ID_TYPE_NUM);
|
add_embedded_arg("flag", ID_TYPE_NUM);
|
||||||
|
embed_function("SetWindowVSync", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("flag", ID_TYPE_NUM);
|
||||||
embed_function("FlashWindow", ID_TYPE_FN_NUM);
|
embed_function("FlashWindow", ID_TYPE_FN_NUM);
|
||||||
add_embedded_arg("flag", ID_TYPE_NUM);
|
add_embedded_arg("flag", ID_TYPE_NUM);
|
||||||
embed_function("WindowIsGrabbed", ID_TYPE_FN_NUM);
|
embed_function("WindowIsGrabbed", ID_TYPE_FN_NUM);
|
||||||
embed_function("PreUpdate", ID_TYPE_SUB);
|
embed_function("PreUpdate", ID_TYPE_SUB);
|
||||||
|
embed_function("SetFPS", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("fps_val", ID_TYPE_NUM);
|
||||||
embed_function("OpenCanvas", ID_TYPE_FN_NUM);
|
embed_function("OpenCanvas", ID_TYPE_FN_NUM);
|
||||||
add_embedded_arg("w", ID_TYPE_NUM);
|
add_embedded_arg("w", ID_TYPE_NUM);
|
||||||
add_embedded_arg("h", ID_TYPE_NUM);
|
add_embedded_arg("h", ID_TYPE_NUM);
|
||||||
|
|||||||
@@ -277,7 +277,9 @@ N main.WindowMode highDPI 4
|
|||||||
N main.GrabInput flag 0
|
N main.GrabInput flag 0
|
||||||
N main.SetWindowAlwaysOnTop flag 0
|
N main.SetWindowAlwaysOnTop flag 0
|
||||||
N main.SetMouseRelative flag 0
|
N main.SetMouseRelative flag 0
|
||||||
|
N main.SetWindowVSync flag 0
|
||||||
N main.FlashWindow flag 0
|
N main.FlashWindow flag 0
|
||||||
|
N main.SetFPS fps_val 0
|
||||||
N main.OpenCanvas w 0
|
N main.OpenCanvas w 0
|
||||||
N main.OpenCanvas h 1
|
N main.OpenCanvas h 1
|
||||||
N main.OpenCanvas viewport_x 2
|
N main.OpenCanvas viewport_x 2
|
||||||
|
|||||||
Binary file not shown.
@@ -432,10 +432,14 @@ embed_function("SetWindowAlwaysOnTop", ID_TYPE_SUB);
|
|||||||
add_embedded_arg("flag", ID_TYPE_NUM);
|
add_embedded_arg("flag", ID_TYPE_NUM);
|
||||||
embed_function("SetMouseRelative", ID_TYPE_SUB);
|
embed_function("SetMouseRelative", ID_TYPE_SUB);
|
||||||
add_embedded_arg("flag", ID_TYPE_NUM);
|
add_embedded_arg("flag", ID_TYPE_NUM);
|
||||||
|
embed_function("SetWindowVSync", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("flag", ID_TYPE_NUM);
|
||||||
embed_function("FlashWindow", ID_TYPE_FN_NUM);
|
embed_function("FlashWindow", ID_TYPE_FN_NUM);
|
||||||
add_embedded_arg("flag", ID_TYPE_NUM);
|
add_embedded_arg("flag", ID_TYPE_NUM);
|
||||||
embed_function("WindowIsGrabbed", ID_TYPE_FN_NUM);
|
embed_function("WindowIsGrabbed", ID_TYPE_FN_NUM);
|
||||||
embed_function("PreUpdate", ID_TYPE_SUB);
|
embed_function("PreUpdate", ID_TYPE_SUB);
|
||||||
|
embed_function("SetFPS", ID_TYPE_SUB);
|
||||||
|
add_embedded_arg("fps_val", ID_TYPE_NUM);
|
||||||
embed_function("OpenCanvas", ID_TYPE_FN_NUM);
|
embed_function("OpenCanvas", ID_TYPE_FN_NUM);
|
||||||
add_embedded_arg("w", ID_TYPE_NUM);
|
add_embedded_arg("w", ID_TYPE_NUM);
|
||||||
add_embedded_arg("h", ID_TYPE_NUM);
|
add_embedded_arg("h", ID_TYPE_NUM);
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -538,6 +538,9 @@ case FN_SetWindowAlwaysOnTop: //Sub Procedure
|
|||||||
case FN_SetMouseRelative: //Sub Procedure
|
case FN_SetMouseRelative: //Sub Procedure
|
||||||
rc_setMouseRelative( SETMOUSERELATIVE_FLAG );
|
rc_setMouseRelative( SETMOUSERELATIVE_FLAG );
|
||||||
break;
|
break;
|
||||||
|
case FN_SetWindowVSync: //Sub Procedure
|
||||||
|
rc_setWindowVSync( SETWINDOWVSYNC_FLAG );
|
||||||
|
break;
|
||||||
case FN_FlashWindow: //Number Function
|
case FN_FlashWindow: //Number Function
|
||||||
rc_push_num(rc_flashWindow( FLASHWINDOW_FLAG ));
|
rc_push_num(rc_flashWindow( FLASHWINDOW_FLAG ));
|
||||||
break;
|
break;
|
||||||
@@ -547,6 +550,9 @@ case FN_WindowIsGrabbed: //Number Function
|
|||||||
case FN_PreUpdate: //Sub Procedure
|
case FN_PreUpdate: //Sub Procedure
|
||||||
rc_preUpdate( );
|
rc_preUpdate( );
|
||||||
break;
|
break;
|
||||||
|
case FN_SetFPS: //Sub Procedure
|
||||||
|
rc_setFPS( SETFPS_FPS_VAL );
|
||||||
|
break;
|
||||||
case FN_OpenCanvas: //Number Function
|
case FN_OpenCanvas: //Number Function
|
||||||
rc_push_num(rc_canvasOpen( OPENCANVAS_W, OPENCANVAS_H, OPENCANVAS_VIEWPORT_X, OPENCANVAS_VIEWPORT_Y, OPENCANVAS_VIEWPORT_W, OPENCANVAS_VIEWPORT_H, OPENCANVAS_MODE ));
|
rc_push_num(rc_canvasOpen( OPENCANVAS_W, OPENCANVAS_H, OPENCANVAS_VIEWPORT_X, OPENCANVAS_VIEWPORT_Y, OPENCANVAS_VIEWPORT_W, OPENCANVAS_VIEWPORT_H, OPENCANVAS_MODE ));
|
||||||
break;
|
break;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -538,6 +538,9 @@ case FN_SetWindowAlwaysOnTop: //Sub Procedure
|
|||||||
case FN_SetMouseRelative: //Sub Procedure
|
case FN_SetMouseRelative: //Sub Procedure
|
||||||
rc_setMouseRelative( SETMOUSERELATIVE_FLAG );
|
rc_setMouseRelative( SETMOUSERELATIVE_FLAG );
|
||||||
break;
|
break;
|
||||||
|
case FN_SetWindowVSync: //Sub Procedure
|
||||||
|
rc_setWindowVSync( SETWINDOWVSYNC_FLAG );
|
||||||
|
break;
|
||||||
case FN_FlashWindow: //Number Function
|
case FN_FlashWindow: //Number Function
|
||||||
rc_push_num(rc_flashWindow( FLASHWINDOW_FLAG ));
|
rc_push_num(rc_flashWindow( FLASHWINDOW_FLAG ));
|
||||||
break;
|
break;
|
||||||
@@ -547,6 +550,9 @@ case FN_WindowIsGrabbed: //Number Function
|
|||||||
case FN_PreUpdate: //Sub Procedure
|
case FN_PreUpdate: //Sub Procedure
|
||||||
rc_preUpdate( );
|
rc_preUpdate( );
|
||||||
break;
|
break;
|
||||||
|
case FN_SetFPS: //Sub Procedure
|
||||||
|
rc_setFPS( SETFPS_FPS_VAL );
|
||||||
|
break;
|
||||||
case FN_OpenCanvas: //Number Function
|
case FN_OpenCanvas: //Number Function
|
||||||
rc_push_num(rc_canvasOpen( OPENCANVAS_W, OPENCANVAS_H, OPENCANVAS_VIEWPORT_X, OPENCANVAS_VIEWPORT_Y, OPENCANVAS_VIEWPORT_W, OPENCANVAS_VIEWPORT_H, OPENCANVAS_MODE ));
|
rc_push_num(rc_canvasOpen( OPENCANVAS_W, OPENCANVAS_H, OPENCANVAS_VIEWPORT_X, OPENCANVAS_VIEWPORT_Y, OPENCANVAS_VIEWPORT_W, OPENCANVAS_VIEWPORT_H, OPENCANVAS_MODE ));
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -314,14 +314,14 @@ bool rc_windowOpenEx(std::string title, int x, int y, int w, int h, uint32_t win
|
|||||||
irr_creation_params.AntiAlias = AntiAlias;
|
irr_creation_params.AntiAlias = AntiAlias;
|
||||||
irr_creation_params.OGLES2ShaderPath = ".shaders/";
|
irr_creation_params.OGLES2ShaderPath = ".shaders/";
|
||||||
|
|
||||||
rc_window_vsync = vsync;
|
rc_window_setfps = vsync;
|
||||||
|
|
||||||
if(vsync)
|
if(vsync)
|
||||||
{
|
{
|
||||||
SDL_DisplayMode dm;
|
SDL_DisplayMode dm;
|
||||||
SDL_GetDesktopDisplayMode(0, &dm);
|
SDL_GetDesktopDisplayMode(0, &dm);
|
||||||
rc_vsync_refresh_rate = dm.refresh_rate;
|
rc_setfps_refresh_rate = dm.refresh_rate;
|
||||||
rc_vsync_timer = SDL_GetTicks();
|
rc_setfps_timer = SDL_GetTicks();
|
||||||
}
|
}
|
||||||
|
|
||||||
device = createDeviceEx(irr_creation_params);
|
device = createDeviceEx(irr_creation_params);
|
||||||
@@ -2131,7 +2131,25 @@ void rc_setMouseRelative(bool flag)
|
|||||||
|
|
||||||
void rc_setWindowVSync(bool flag)
|
void rc_setWindowVSync(bool flag)
|
||||||
{
|
{
|
||||||
//TODO
|
rc_window_setfps = true;
|
||||||
|
SDL_DisplayMode dm;
|
||||||
|
SDL_GetDesktopDisplayMode(0, &dm);
|
||||||
|
rc_setfps_refresh_rate = dm.refresh_rate;
|
||||||
|
rc_setfps_timer = SDL_GetTicks();
|
||||||
|
}
|
||||||
|
|
||||||
|
void rc_setFPS(int fps)
|
||||||
|
{
|
||||||
|
if(fps < 0)
|
||||||
|
{
|
||||||
|
rc_window_setfps = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rc_window_setfps = true;
|
||||||
|
rc_setfps_refresh_rate = fps;
|
||||||
|
rc_setfps_timer = SDL_GetTicks();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int rc_openURL(std::string url)
|
int rc_openURL(std::string url)
|
||||||
|
|||||||
@@ -255,9 +255,9 @@ bool rc_mouse_zone_active = false;
|
|||||||
double rc_window_zone_scale_x = 1;
|
double rc_window_zone_scale_x = 1;
|
||||||
double rc_window_zone_scale_y = 1;
|
double rc_window_zone_scale_y = 1;
|
||||||
SDL_Rect rc_mouse_zone;
|
SDL_Rect rc_mouse_zone;
|
||||||
bool rc_window_vsync = false;
|
bool rc_window_setfps = false;
|
||||||
int rc_vsync_refresh_rate = 0;
|
int rc_setfps_refresh_rate = 0;
|
||||||
Uint32 rc_vsync_timer = 0;
|
Uint32 rc_setfps_timer = 0;
|
||||||
|
|
||||||
struct rc_scene_properties_obj
|
struct rc_scene_properties_obj
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -79,11 +79,11 @@ void rc_preUpdate()
|
|||||||
|
|
||||||
bool rc_update()
|
bool rc_update()
|
||||||
{
|
{
|
||||||
if(rc_window_vsync)
|
if(rc_window_setfps)
|
||||||
{
|
{
|
||||||
int frame_delay = 1000/rc_vsync_refresh_rate;
|
int frame_delay = 1000/rc_setfps_refresh_rate;
|
||||||
while( (SDL_GetTicks()-rc_vsync_timer) < frame_delay ){}
|
while( (SDL_GetTicks()-rc_setfps_timer) < frame_delay ){}
|
||||||
rc_vsync_timer = SDL_GetTicks();
|
rc_setfps_timer = SDL_GetTicks();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!device->run())
|
if(!device->run())
|
||||||
|
|||||||
Reference in New Issue
Block a user