NO_STAGEBG config trigger

This commit is contained in:
laochailan 2012-07-13 20:32:47 +02:00
parent 9241b3eb35
commit c25566346e
5 changed files with 20 additions and 5 deletions

View file

@ -32,7 +32,9 @@ enum {
FULLSCREEN,
NO_SHADER,
NO_AUDIO
NO_AUDIO,
NO_STAGEBG
};
void parse_config(char *filename);

View file

@ -36,6 +36,7 @@
"disable_shader" { yylval = NO_SHADER; return tNO_SHADER; }
"disable_audio" {yylval = NO_AUDIO; return tNO_AUDIO; }
"disable_stagebg" { yylval = NO_STAGEBG; return tNO_STAGEBG; }
"shift" { yylval = SDLK_LSHIFT; return SKEY; }
"ctrl" { yylval = SDLK_LCTRL; return SKEY; }

View file

@ -47,6 +47,7 @@
%token tNO_SHADER
%token tNO_AUDIO
%token tNO_STAGEBG
%token SKEY
@ -84,7 +85,8 @@ key_key : tKEY_UP
| tKEY_SCREENSHOT
| tNO_SHADER
| tNO_AUDIO
| tFULLSCREEN;
| tFULLSCREEN
| tNO_STAGEBG;
nl : LB { lineno++; };
%%
@ -133,4 +135,6 @@ void config_preset() {
tconfig.intval[NO_SHADER] = 0;
tconfig.intval[NO_AUDIO] = 0;
tconfig.intval[NO_STAGEBG] = 0;
}

View file

@ -315,6 +315,11 @@ void create_options_menu(MenuData *m) {
b = bind_option(m, "disable_shader", NO_SHADER, bind_common_onoffget_inverted,
bind_noshader_set);
bind_onoff(b);
add_menu_entry(m, "Stage Background", do_nothing, NULL);
b = bind_option(m, "disable_stagebg", NO_STAGEBG, bind_common_onoffget_inverted,
bind_common_onoffset_inverted);
bind_onoff(b);
add_menu_entry(m, " ", NULL, NULL);
allocate_binding(m);

View file

@ -129,9 +129,9 @@ void stage_draw(StageRule bgdraw, ShaderRule *shaderrules, int time) {
glTranslatef(-(VIEWPORT_X+VIEWPORT_W/2.0), -(VIEWPORT_Y+VIEWPORT_H/2.0),0);
glEnable(GL_DEPTH_TEST);
if(!global.menu)
if(!global.menu && !tconfig.intval[NO_STAGEBG])
bgdraw();
glPopMatrix();
glBindFramebuffer(GL_FRAMEBUFFER, 0);
@ -234,7 +234,7 @@ void apply_bg_shaders(ShaderRule *shaderrules) {
glPopMatrix();
glBindFramebuffer(GL_FRAMEBUFFER, 0);
} else {
} else if(!tconfig.intval[NO_STAGEBG]) {
for(i = 0; shaderrules != NULL && shaderrules[i] != NULL; i++) {
glBindFramebuffer(GL_FRAMEBUFFER, resources.fbg[!fbonum].fbo);
shaderrules[i](fbonum);
@ -357,6 +357,9 @@ void stage_loop(StageRule start, StageRule end, StageRule draw, StageRule event,
SDL_GL_SwapBuffers();
frame_rate(&global.lasttime);
if(global.fps.fps <= 40)
tconfig.intval[NO_STAGEBG] = 1;
}
end();