mirror of
https://github.com/MobileGL-Dev/MobileGlues.git
synced 2025-09-22 10:42:11 -04:00
[Improvement] (Texture): Better GL_DEPTH_COMPONENT handling.
This commit is contained in:
parent
75ddfe4100
commit
bb1c9eb2a2
@ -19,7 +19,6 @@ void init_settings() {
|
|||||||
global_settings.ext_gl43 = 0;
|
global_settings.ext_gl43 = 0;
|
||||||
global_settings.ext_compute_shader = 0;
|
global_settings.ext_compute_shader = 0;
|
||||||
global_settings.max_glsl_cache_size = 30 * 1024 * 1024;
|
global_settings.max_glsl_cache_size = 30 * 1024 * 1024;
|
||||||
global_settings.enable_compatible_mode = 0;
|
|
||||||
global_settings.multidraw_mode = multidraw_mode_t::DrawElements;
|
global_settings.multidraw_mode = multidraw_mode_t::DrawElements;
|
||||||
#else
|
#else
|
||||||
|
|
||||||
@ -136,8 +135,6 @@ void init_settings() {
|
|||||||
|
|
||||||
global_settings.max_glsl_cache_size = maxGlslCacheSize;
|
global_settings.max_glsl_cache_size = maxGlslCacheSize;
|
||||||
|
|
||||||
global_settings.enable_compatible_mode = enableCompatibleMode;
|
|
||||||
|
|
||||||
global_settings.multidraw_mode = multidrawMode;
|
global_settings.multidraw_mode = multidrawMode;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -172,7 +169,6 @@ void init_settings() {
|
|||||||
LOG_V("[MobileGlues] Setting: enableExtComputeShader = %s", global_settings.ext_compute_shader ? "true" : "false")
|
LOG_V("[MobileGlues] Setting: enableExtComputeShader = %s", global_settings.ext_compute_shader ? "true" : "false")
|
||||||
LOG_V("[MobileGlues] Setting: enableExtGL43 = %s", global_settings.ext_gl43 ? "true" : "false")
|
LOG_V("[MobileGlues] Setting: enableExtGL43 = %s", global_settings.ext_gl43 ? "true" : "false")
|
||||||
LOG_V("[MobileGlues] Setting: maxGlslCacheSize = %i", global_settings.max_glsl_cache_size / 1024 / 1024)
|
LOG_V("[MobileGlues] Setting: maxGlslCacheSize = %i", global_settings.max_glsl_cache_size / 1024 / 1024)
|
||||||
LOG_V("[MobileGlues] Setting: enableCompatibleMode = %s", global_settings.enable_compatible_mode ? "true" : "false")
|
|
||||||
LOG_V("[MobileGlues] Setting: multidrawMode = %s", draw_mode_str.c_str())
|
LOG_V("[MobileGlues] Setting: multidrawMode = %s", draw_mode_str.c_str())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,7 +31,6 @@ struct global_settings_t {
|
|||||||
int ext_gl43; // 0, 1
|
int ext_gl43; // 0, 1
|
||||||
int ext_compute_shader; // 0, 1
|
int ext_compute_shader; // 0, 1
|
||||||
size_t max_glsl_cache_size; // 0~
|
size_t max_glsl_cache_size; // 0~
|
||||||
int enable_compatible_mode; // 0, 1
|
|
||||||
multidraw_mode_t multidraw_mode; // 0, 1, 2, 3, 4
|
multidraw_mode_t multidraw_mode; // 0, 1, 2, 3, 4
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -63,10 +63,23 @@ void internal_convert(GLenum* internal_format, GLenum* type, GLenum* format) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case GL_DEPTH_COMPONENT:
|
case GL_DEPTH_COMPONENT:
|
||||||
// TODO: Add enable_compatible_mode option
|
|
||||||
LOG_D("Find GL_DEPTH_COMPONENT: internalFormat: %s, format: %s, type: %s", glEnumToString(*internal_format), glEnumToString(*format), glEnumToString(*type))
|
LOG_D("Find GL_DEPTH_COMPONENT: internalFormat: %s, format: %s, type: %s", glEnumToString(*internal_format), glEnumToString(*format), glEnumToString(*type))
|
||||||
if(type) {
|
if (type) {
|
||||||
*type = GL_UNSIGNED_INT;
|
switch (*type) {
|
||||||
|
case GL_UNSIGNED_SHORT:
|
||||||
|
case GL_UNSIGNED_INT:
|
||||||
|
*type = GL_UNSIGNED_INT;
|
||||||
|
*internal_format = GL_DEPTH_COMPONENT;
|
||||||
|
break;
|
||||||
|
case GL_FLOAT:
|
||||||
|
case GL_DOUBLE:
|
||||||
|
case GL_HALF_FLOAT:
|
||||||
|
*internal_format = GL_DEPTH_COMPONENT32F;
|
||||||
|
*type = GL_FLOAT;
|
||||||
|
default:
|
||||||
|
*internal_format = GL_DEPTH_COMPONENT;
|
||||||
|
*type = GL_UNSIGNED_INT;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user