forked from bartvdbraak/blender
OpenGL: when checking GL version, assume >= 2.1
Mostly glBlendFunc related.
This commit is contained in:
parent
291afea8cc
commit
ef5fff4adc
@ -221,8 +221,8 @@ static bool ensureCurveMappingAllocated(OCIO_GLSLDrawState *state, OCIO_CurveMap
|
||||
/* Detect if we can support GLSL drawing */
|
||||
bool OCIOImpl::supportGLSLDraw()
|
||||
{
|
||||
/* GLSL and GL_RGB16F_ARB */
|
||||
return GLEW_VERSION_2_0 && (GLEW_VERSION_3_0 || GLEW_ARB_texture_float);
|
||||
/* uses GL_RGB16F_ARB */
|
||||
return GLEW_VERSION_3_0 || GLEW_ARB_texture_float;
|
||||
}
|
||||
|
||||
static bool supportGLSL13()
|
||||
|
@ -1111,13 +1111,7 @@ static void gp_draw_data(bGPdata *gpd, int offsx, int offsy, int winx, int winy,
|
||||
*/
|
||||
|
||||
/* turn on alpha-blending */
|
||||
if (GLEW_VERSION_1_4) {
|
||||
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
|
||||
}
|
||||
else {
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
}
|
||||
|
||||
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
|
||||
glEnable(GL_BLEND);
|
||||
|
||||
/* draw! */
|
||||
|
@ -1228,12 +1228,7 @@ static void icon_draw_size(
|
||||
if (!pi->rect[size]) return; /* something has gone wrong! */
|
||||
|
||||
/* preview images use premul alpha ... */
|
||||
if (GLEW_VERSION_1_4) {
|
||||
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
|
||||
}
|
||||
else {
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
}
|
||||
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
||||
icon_draw_rect(x, y, w, h, aspect, pi->w[size], pi->h[size], pi->rect[size], alpha, rgb, is_preview);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
@ -313,10 +313,7 @@ void draw_smoke_volume(SmokeDomainSettings *sds, Object *ob,
|
||||
|
||||
/* render fire slice */
|
||||
if (use_fire) {
|
||||
if (GLEW_VERSION_1_4)
|
||||
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE, GL_ONE, GL_ONE);
|
||||
else
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
|
||||
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE, GL_ONE, GL_ONE);
|
||||
|
||||
GPU_program_parameter_4f(smoke_program, 2, 1.0, 0.0, 0.0, 0.0);
|
||||
glBegin(GL_POLYGON);
|
||||
@ -332,10 +329,7 @@ void draw_smoke_volume(SmokeDomainSettings *sds, Object *ob,
|
||||
}
|
||||
|
||||
/* render smoke slice */
|
||||
if (GLEW_VERSION_1_4)
|
||||
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
|
||||
else
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
||||
GPU_program_parameter_4f(smoke_program, 2, -1.0, 0.0, 0.0, 0.0);
|
||||
glBegin(GL_POLYGON);
|
||||
|
@ -438,10 +438,7 @@ static void gpu_set_alpha_blend(GPUBlendMode alphablend)
|
||||
glDisable(GL_SAMPLE_ALPHA_TO_COVERAGE);
|
||||
|
||||
/* for OpenGL render we use the alpha channel, this makes alpha blend correct */
|
||||
if (GLEW_VERSION_1_4)
|
||||
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
|
||||
else
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
||||
/* if U.glalphaclip == 1.0, some cards go bonkers...
|
||||
* turn off alpha test in this case */
|
||||
|
Loading…
Reference in New Issue
Block a user