This commit is contained in:
Nishi 2026-01-11 18:27:41 +09:00
commit 08ea9a0e7b
Signed by: nishi
GPG key ID: 27EF69B208EB9343
7 changed files with 40 additions and 14 deletions

View file

@ -4,6 +4,7 @@
#define SHADOW_WIDTH 1024
#define SHADOW_HEIGHT 1024
#define SHADOW_CULL
void GBGLShadowInit(GBGL gl) {
glGenTextures(1, &gl->shadow_texture);
@ -29,12 +30,20 @@ void GBGLShadowInit(GBGL gl) {
glUniform1i(glGetUniformLocation(gl->shadow_shader, "depth_texture"), 7);
glUniform1i(glGetUniformLocation(gl->shadow_shader, "current_texture"), 0);
glUseProgram(0);
gl->shadow_use_shader = 1;
} else {
glDeleteTextures(1, &gl->shadow_texture);
gl->shadow_use_shader = 0;
}
}
void GBGLShadowBeforeMapping(GBGL gl) {
int GBGLShadowBeforeMapping(GBGL gl) {
GBVector3 zero = {0, 0, 0};
if(!gl->shadow_use_shader) return 0;
glClear(GL_DEPTH_BUFFER_BIT);
glViewport(0, 0, SHADOW_WIDTH, SHADOW_HEIGHT);
@ -65,6 +74,8 @@ void GBGLShadowBeforeMapping(GBGL gl) {
glPolygonOffset(1.1f, 4.0f);
glEnable(GL_POLYGON_OFFSET_FILL);
return 1;
}
void GBGLShadowAfterMapping(GBGL gl) {
@ -125,6 +136,8 @@ void GBGLShadowAfterMapping(GBGL gl) {
}
void GBGLShadowEnd(GBGL gl) {
if(!gl->shadow_use_shader) return;
glUseProgram(0);
glActiveTexture(GL_TEXTURE7);
@ -139,3 +152,10 @@ void GBGLShadowEnd(GBGL gl) {
glMatrixMode(GL_MODELVIEW);
}
void GBGLShadowDeinit(GBGL gl) {
if(gl->shadow_use_shader) {
glDeleteTextures(1, &gl->shadow_texture);
glDeleteProgram(gl->shadow_shader);
}
}