This commit is contained in:
korenkonder
2023-05-09 12:28:28 +03:00
parent ba1efcf6f1
commit e651e99cc7
12 changed files with 871 additions and 134 deletions
+44
View File
@@ -203,6 +203,50 @@ void texture_set_params(GLenum target, int32_t max_mipmap_level, bool use_high_a
glTexParameterf(target, GL_TEXTURE_MAX_ANISOTROPY_EXT, max_anisotropy);
}
void texture_params_get(GLuint tex_0, texture_param* tex_0_param,
GLuint tex_1, texture_param* tex_1_param, GLuint tex_2, texture_param* tex_2_param) {
gl_state_disable_depth_test();
if (tex_0_param) {
tex_0_param->width = 0;
tex_0_param->height = 0;
if (tex_0) {
gl_state_bind_texture_2d(tex_0);
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &tex_0_param->width);
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &tex_0_param->height);
}
}
if (tex_1_param) {
tex_1_param->width = 0;
tex_1_param->height = 0;
if (tex_1) {
gl_state_bind_texture_2d(tex_1);
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &tex_1_param->width);
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &tex_1_param->height);
}
}
if (tex_2_param) {
tex_2_param->width = 0;
tex_2_param->height = 0;
if (tex_2) {
gl_state_bind_texture_2d(tex_2);
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &tex_2_param->width);
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &tex_2_param->height);
}
}
gl_state_bind_texture_2d(0);
if (tex_0_param)
glViewport(0, 0, tex_0_param->width, tex_0_param->height);
}
void texture_params_restore(texture_param* tex_0_param,
texture_param* tex_1_param, texture_param* tex_2_param) {
for (int32_t i = 0; i < 4; i++)
gl_state_active_bind_texture_2d(i, 0);
}
bool texture_txp_set_load(txp_set* t, texture*** texs, uint32_t* ids) {
if (!t || !texs || !ids)
return false;