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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2010-04-05 14:25:40 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2010-04-05 14:25:40 +0400
commitec5527cb520366e95cf3fe3c594d9e8f65f1b7ad (patch)
treef295ba26bbec98ee796599b2e2894c28a4377b88 /source/blender/gpu
parent8b7d1775c3977f5afaa40363502f826b37266475 (diff)
Fix #21349: triple buffer drawing doesn't work well with thousands of
colors setting on Mac, just disabled it in that case.
Diffstat (limited to 'source/blender/gpu')
-rw-r--r--source/blender/gpu/GPU_extensions.h4
-rw-r--r--source/blender/gpu/intern/gpu_extensions.c10
2 files changed, 13 insertions, 1 deletions
diff --git a/source/blender/gpu/GPU_extensions.h b/source/blender/gpu/GPU_extensions.h
index 686e89b8310..6b98ffdede7 100644
--- a/source/blender/gpu/GPU_extensions.h
+++ b/source/blender/gpu/GPU_extensions.h
@@ -57,9 +57,11 @@ typedef struct GPUShader GPUShader;
void GPU_extensions_disable(void);
void GPU_extensions_init(void); /* call this before running any of the functions below */
void GPU_extensions_exit(void);
+int GPU_print_error(char *str);
+
int GPU_glsl_support(void);
int GPU_non_power_of_two_support(void);
-int GPU_print_error(char *str);
+int GPU_24bit_color_support(void);
/* GPU Types */
diff --git a/source/blender/gpu/intern/gpu_extensions.c b/source/blender/gpu/intern/gpu_extensions.c
index 8e0a23ccfeb..d53b8e67c56 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);
@@ -170,6 +175,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;