Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/gpu/intern/gpu_extensions.c')
-rw-r--r--source/blender/gpu/intern/gpu_extensions.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/source/blender/gpu/intern/gpu_extensions.c b/source/blender/gpu/intern/gpu_extensions.c
index 8e0a23ccfeb..4eaf969ee8a 100644
--- a/source/blender/gpu/intern/gpu_extensions.c
+++ b/source/blender/gpu/intern/gpu_extensions.c
@@ -71,6 +71,7 @@ static struct GPUGlobal {
GLuint currentfb;
int glslsupport;
int extdisabled;
+ int color24bit;
GPUDeviceType device;
GPUOSType os;
GPUDriverType driver;
@@ -92,6 +93,7 @@ void GPU_extensions_disable()
void GPU_extensions_init()
{
+ GLint bits;
const char *vendor, *renderer;
glewInit();
@@ -106,6 +108,9 @@ void GPU_extensions_init()
if (!GLEW_ARB_vertex_shader) GG.glslsupport = 0;
if (!GLEW_ARB_fragment_shader) GG.glslsupport = 0;
+ glGetIntegerv(GL_RED_BITS, &bits);
+ GG.color24bit = (bits >= 8);
+
vendor = (const char*)glGetString(GL_VENDOR);
renderer = (const char*)glGetString(GL_RENDERER);
@@ -117,7 +122,10 @@ void GPU_extensions_init()
GG.device = GPU_DEVICE_NVIDIA;
GG.driver = GPU_DRIVER_OFFICIAL;
}
- else if(strstr(vendor, "Intel") || strstr(renderer, "Mesa DRI Intel")) {
+ else if(strstr(vendor, "Intel") ||
+ /* src/mesa/drivers/dri/intel/intel_context.c */
+ strstr(renderer, "Mesa DRI Intel") ||
+ strstr(renderer, "Mesa DRI Mobile Intel")) {
GG.device = GPU_DEVICE_INTEL;
GG.driver = GPU_DRIVER_OFFICIAL;
}
@@ -170,6 +178,11 @@ int GPU_non_power_of_two_support()
return GLEW_ARB_texture_non_power_of_two;
}
+int GPU_24bit_color_support()
+{
+ return GG.color24bit;
+}
+
int GPU_print_error(char *str)
{
GLenum errCode;