Cleanup: GPU: Encapsulate glProvokingVertex

This commit is contained in:
Clément Foucault 2020-07-17 20:26:12 +02:00
parent 264b1e1e15
commit 8dfc31f61f
3 changed files with 14 additions and 2 deletions

View File

@ -408,7 +408,7 @@ static void draw_uvs(SpaceImage *sima,
{
/* We could modify the vbo's data filling
* instead of modifying the provoking vert. */
glProvokingVertex(GL_FIRST_VERTEX_CONVENTION);
GPU_provoking_vertex(GPU_VERTEX_FIRST);
UI_GetThemeColor3fv(TH_EDGE_SELECT, col2);
col2[3] = overlay_alpha;
@ -464,7 +464,7 @@ static void draw_uvs(SpaceImage *sima,
GPU_batch_draw(batch->edges);
GPU_depth_test(false);
glProvokingVertex(GL_LAST_VERTEX_CONVENTION);
GPU_provoking_vertex(GPU_VERTEX_LAST);
}
if (sima->flag & SI_SMOOTH_UV) {

View File

@ -46,6 +46,11 @@ typedef enum eGPUFaceCull {
GPU_CULL_BACK,
} eGPUFaceCull;
typedef enum eGPUProvokingVertex {
GPU_VERTEX_FIRST = 0,
GPU_VERTEX_LAST, /* Default */
} eGPUProvokingVertex;
/* Initialize
* - sets the default Blender opengl state, if in doubt, check
* the contents of this function
@ -60,6 +65,7 @@ void GPU_blend_set_func_separate(eGPUBlendFunction src_rgb,
eGPUBlendFunction dst_alpha);
void GPU_face_culling(eGPUFaceCull culling);
void GPU_front_facing(bool invert);
void GPU_provoking_vertex(eGPUProvokingVertex vert);
void GPU_depth_range(float near, float far);
void GPU_depth_test(bool enable);
bool GPU_depth_test_enabled(void);

View File

@ -94,6 +94,12 @@ void GPU_front_facing(bool invert)
glFrontFace((invert) ? GL_CW : GL_CCW);
}
void GPU_provoking_vertex(eGPUProvokingVertex vert)
{
glProvokingVertex((vert == GPU_VERTEX_FIRST) ? GL_FIRST_VERTEX_CONVENTION :
GL_LAST_VERTEX_CONVENTION);
}
void GPU_depth_range(float near, float far)
{
/* glDepthRangef is only for OpenGL 4.1 or higher */