cvar_t r_sky = {CVAR_SAVE, "r_sky", "1", "enables sky rendering (black otherwise)"};
cvar_t r_skyscroll1 = {CVAR_SAVE, "r_skyscroll1", "1", "speed at which upper clouds layer scrolls in quake sky"};
cvar_t r_skyscroll2 = {CVAR_SAVE, "r_skyscroll2", "2", "speed at which lower clouds layer scrolls in quake sky"};
cvar_t r_sky = {CVAR_SAVE, "r_sky", "1", "enables sky rendering (black otherwise)"};
cvar_t r_skyscroll1 = {CVAR_SAVE, "r_skyscroll1", "1", "speed at which upper clouds layer scrolls in quake sky"};
cvar_t r_skyscroll2 = {CVAR_SAVE, "r_skyscroll2", "2", "speed at which lower clouds layer scrolls in quake sky"};
Matrix4x4_CreateFromQuakeEntity(&skymatrix, r_refdef.view.origin[0], r_refdef.view.origin[1], r_refdef.view.origin[2], 0, 0, 0, r_refdef.farclip * (0.5f / 16.0f));
Matrix4x4_Invert_Simple(&skyinversematrix, &skymatrix);
Matrix4x4_CreateFromQuakeEntity(&skymatrix, r_refdef.view.origin[0], r_refdef.view.origin[1], r_refdef.view.origin[2], 0, 0, 0, r_refdef.farclip * (0.5f / 16.0f));
Matrix4x4_Invert_Simple(&skyinversematrix, &skymatrix);
+ if (r_sky_scissor.integer)
+ {
+ // if the scissor is empty just return
+ if (skyscissor[2] == 0 || skyscissor[3] == 0)
+ return;
+ GL_Scissor(skyscissor[0], skyscissor[1], skyscissor[2], skyscissor[3]);
+ GL_ScissorTest(true);
+ }
Cvar_RegisterVariable (&r_sky);
Cvar_RegisterVariable (&r_skyscroll1);
Cvar_RegisterVariable (&r_skyscroll2);
Cvar_RegisterVariable (&r_sky);
Cvar_RegisterVariable (&r_skyscroll1);
Cvar_RegisterVariable (&r_skyscroll2);
memset(&skyboxskinframe, 0, sizeof(skyboxskinframe));
skyname[0] = 0;
R_RegisterModule("R_Sky", r_sky_start, r_sky_shutdown, r_sky_newmap, NULL, NULL);
memset(&skyboxskinframe, 0, sizeof(skyboxskinframe));
skyname[0] = 0;
R_RegisterModule("R_Sky", r_sky_start, r_sky_shutdown, r_sky_newmap, NULL, NULL);