OpenGL: rename GPU_enable_material to better indicate it's binding shaders.

This commit is contained in:
Brecht Van Lommel
2015-11-23 21:42:17 +01:00
parent 34f51cd498
commit 263f4cd342
4 changed files with 43 additions and 43 deletions

View File

@@ -815,7 +815,7 @@ static void draw_mesh_text(Scene *scene, Object *ob, int glsl)
/* TEXFACE */ /* TEXFACE */
if (glsl) { if (glsl) {
GPU_enable_material(matnr + 1, &gattribs); GPU_object_material_bind(matnr + 1, &gattribs);
for (i = 0; i < gattribs.totlayer; i++) { for (i = 0; i < gattribs.totlayer; i++) {
if (gattribs.layer[i].type == CD_MTFACE) { if (gattribs.layer[i].type == CD_MTFACE) {
@@ -967,7 +967,7 @@ static void draw_mesh_textured_old(Scene *scene, View3D *v3d, RegionView3D *rv3d
} }
else if (draw_flags & DRAW_FACE_SELECT) { else if (draw_flags & DRAW_FACE_SELECT) {
if (ob->mode & OB_MODE_WEIGHT_PAINT) if (ob->mode & OB_MODE_WEIGHT_PAINT)
dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions_facemask, GPU_enable_material, NULL, me, dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions_facemask, GPU_object_material_bind, NULL, me,
DM_DRAW_USE_COLORS | DM_DRAW_ALWAYS_SMOOTH | DM_DRAW_SKIP_HIDDEN); DM_DRAW_USE_COLORS | DM_DRAW_ALWAYS_SMOOTH | DM_DRAW_SKIP_HIDDEN);
else { else {
drawTFace_userData userData; drawTFace_userData userData;
@@ -1024,7 +1024,7 @@ static void tex_mat_set_material_cb(void *UNUSED(userData), int mat_nr, void *at
* that the GLSL code will give different result depending on the drawtype, * that the GLSL code will give different result depending on the drawtype,
* in texture draw mode it will output the active texture node, in material * in texture draw mode it will output the active texture node, in material
* draw mode it will show the full material. */ * draw mode it will show the full material. */
GPU_enable_material(mat_nr, attribs); GPU_object_material_bind(mat_nr, attribs);
} }
static void tex_mat_set_texture_cb(void *userData, int mat_nr, void *attribs) static void tex_mat_set_texture_cb(void *userData, int mat_nr, void *attribs)
@@ -1048,7 +1048,7 @@ static void tex_mat_set_texture_cb(void *userData, int mat_nr, void *attribs)
NodeTexBase *texbase = node->storage; NodeTexBase *texbase = node->storage;
/* disable existing material */ /* disable existing material */
GPU_disable_material(); GPU_object_material_unbind();
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, zero); glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, zero);
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, zero); glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, zero);
glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, 0); glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, 0);
@@ -1087,7 +1087,7 @@ static void tex_mat_set_texture_cb(void *userData, int mat_nr, void *attribs)
glDisable(GL_COLOR_MATERIAL); glDisable(GL_COLOR_MATERIAL);
/* draw single color */ /* draw single color */
GPU_enable_material(mat_nr, attribs); GPU_object_material_bind(mat_nr, attribs);
} }
} }
@@ -1212,7 +1212,7 @@ static void draw_mesh_paint_light_begin(void)
{ {
const float spec[4] = {0.47f, 0.47f, 0.47f, 0.47f}; const float spec[4] = {0.47f, 0.47f, 0.47f, 0.47f};
GPU_enable_material(0, NULL); GPU_object_material_bind(0, NULL);
/* but set default spec */ /* but set default spec */
glColorMaterial(GL_FRONT_AND_BACK, GL_SPECULAR); glColorMaterial(GL_FRONT_AND_BACK, GL_SPECULAR);
@@ -1228,13 +1228,13 @@ static void draw_mesh_paint_light_end(void)
glDisable(GL_COLOR_MATERIAL); glDisable(GL_COLOR_MATERIAL);
glDisable(GL_LIGHTING); glDisable(GL_LIGHTING);
GPU_disable_material(); GPU_object_material_unbind();
} }
void draw_mesh_paint_weight_faces(DerivedMesh *dm, const bool use_light, void draw_mesh_paint_weight_faces(DerivedMesh *dm, const bool use_light,
void *facemask_cb, void *user_data) void *facemask_cb, void *user_data)
{ {
DMSetMaterial setMaterial = GPU_object_materials_check() ? GPU_enable_material : NULL; DMSetMaterial setMaterial = GPU_object_materials_check() ? GPU_object_material_bind : NULL;
if (use_light) { if (use_light) {
draw_mesh_paint_light_begin(); draw_mesh_paint_light_begin();
@@ -1252,7 +1252,7 @@ void draw_mesh_paint_vcolor_faces(DerivedMesh *dm, const bool use_light,
void *facemask_cb, void *user_data, void *facemask_cb, void *user_data,
const Mesh *me) const Mesh *me)
{ {
DMSetMaterial setMaterial = GPU_object_materials_check() ? GPU_enable_material : NULL; DMSetMaterial setMaterial = GPU_object_materials_check() ? GPU_object_material_bind : NULL;
if (use_light) { if (use_light) {
draw_mesh_paint_light_begin(); draw_mesh_paint_light_begin();

View File

@@ -3797,16 +3797,16 @@ static void draw_em_fancy(Scene *scene, ARegion *ar, View3D *v3d,
/* use the cageDM since it always overlaps the editmesh faces */ /* use the cageDM since it always overlaps the editmesh faces */
glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
cageDM->drawMappedFaces(cageDM, draw_em_fancy__setFaceOpts, cageDM->drawMappedFaces(cageDM, draw_em_fancy__setFaceOpts,
GPU_enable_material, NULL, me->edit_btmesh, DM_DRAW_SKIP_HIDDEN); GPU_object_material_bind, NULL, me->edit_btmesh, DM_DRAW_SKIP_HIDDEN);
glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
} }
else if (check_object_draw_texture(scene, v3d, dt)) { else if (check_object_draw_texture(scene, v3d, dt)) {
if (draw_glsl_material(scene, ob, v3d, dt)) { if (draw_glsl_material(scene, ob, v3d, dt)) {
glFrontFace((ob->transflag & OB_NEG_SCALE) ? GL_CW : GL_CCW); glFrontFace((ob->transflag & OB_NEG_SCALE) ? GL_CW : GL_CCW);
finalDM->drawMappedFacesGLSL(finalDM, GPU_enable_material, finalDM->drawMappedFacesGLSL(finalDM, GPU_object_material_bind,
draw_em_fancy__setGLSLFaceOpts, em); draw_em_fancy__setGLSLFaceOpts, em);
GPU_disable_material(); GPU_object_material_unbind();
glFrontFace(GL_CCW); glFrontFace(GL_CCW);
} }
@@ -3821,7 +3821,7 @@ static void draw_em_fancy(Scene *scene, ARegion *ar, View3D *v3d,
glEnable(GL_LIGHTING); glEnable(GL_LIGHTING);
glFrontFace((ob->transflag & OB_NEG_SCALE) ? GL_CW : GL_CCW); glFrontFace((ob->transflag & OB_NEG_SCALE) ? GL_CW : GL_CCW);
finalDM->drawMappedFaces(finalDM, draw_em_fancy__setFaceOpts, GPU_enable_material, NULL, me->edit_btmesh, DM_DRAW_SKIP_HIDDEN); finalDM->drawMappedFaces(finalDM, draw_em_fancy__setFaceOpts, GPU_object_material_bind, NULL, me->edit_btmesh, DM_DRAW_SKIP_HIDDEN);
glFrontFace(GL_CCW); glFrontFace(GL_CCW);
glDisable(GL_LIGHTING); glDisable(GL_LIGHTING);
@@ -3985,7 +3985,7 @@ static void draw_em_fancy(Scene *scene, ARegion *ar, View3D *v3d,
if (dt > OB_WIRE) { if (dt > OB_WIRE) {
glDepthMask(1); glDepthMask(1);
ED_view3d_polygon_offset(rv3d, 0.0); ED_view3d_polygon_offset(rv3d, 0.0);
GPU_disable_material(); GPU_object_material_unbind();
} }
#if 0 /* currently not needed */ #if 0 /* currently not needed */
else if (use_occlude_wire) { else if (use_occlude_wire) {
@@ -4008,9 +4008,9 @@ static void draw_mesh_object_outline(View3D *v3d, Object *ob, DerivedMesh *dm)
* drawFacesSolid() doesn't draw the transparent faces */ * drawFacesSolid() doesn't draw the transparent faces */
if (ob->dtx & OB_DRAWTRANSP) { if (ob->dtx & OB_DRAWTRANSP) {
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
dm->drawFacesSolid(dm, NULL, 0, GPU_enable_material); dm->drawFacesSolid(dm, NULL, 0, GPU_object_material_bind);
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
GPU_disable_material(); GPU_object_material_unbind();
} }
else { else {
dm->drawEdges(dm, 0, 1); dm->drawEdges(dm, 0, 1);
@@ -4120,18 +4120,18 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
} }
} }
GPU_enable_material(1, &gattribs); GPU_object_material_bind(1, &gattribs);
dm->drawFacesSolid(dm, fpl, fast, NULL); dm->drawFacesSolid(dm, fpl, fast, NULL);
draw_loose = false; draw_loose = false;
} }
else else
dm->drawFacesGLSL(dm, GPU_enable_material); dm->drawFacesGLSL(dm, GPU_object_material_bind);
#if 0 /* XXX */ #if 0 /* XXX */
if (BKE_bproperty_object_get(ob, "Text")) if (BKE_bproperty_object_get(ob, "Text"))
draw_mesh_text(ob, 1); draw_mesh_text(ob, 1);
#endif #endif
GPU_disable_material(); GPU_object_material_unbind();
glFrontFace(GL_CCW); glFrontFace(GL_CCW);
@@ -4155,7 +4155,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
if (draw_flags & DRAW_MODIFIERS_PREVIEW) { if (draw_flags & DRAW_MODIFIERS_PREVIEW) {
/* for object selection draws no shade */ /* for object selection draws no shade */
if (dflag & (DRAW_PICKING | DRAW_CONSTCOLOR)) { if (dflag & (DRAW_PICKING | DRAW_CONSTCOLOR)) {
dm->drawFacesSolid(dm, NULL, 0, GPU_enable_material); dm->drawFacesSolid(dm, NULL, 0, GPU_object_material_bind);
} }
else { else {
const float spec[4] = {0.47f, 0.47f, 0.47f, 0.47f}; const float spec[4] = {0.47f, 0.47f, 0.47f, 0.47f};
@@ -4173,7 +4173,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
/* materials arent compatible with vertex colors */ /* materials arent compatible with vertex colors */
GPU_end_object_materials(); GPU_end_object_materials();
GPU_enable_material(0, NULL); GPU_object_material_bind(0, NULL);
/* set default spec */ /* set default spec */
glColorMaterial(GL_FRONT_AND_BACK, GL_SPECULAR); glColorMaterial(GL_FRONT_AND_BACK, GL_SPECULAR);
@@ -4187,7 +4187,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
glDisable(GL_COLOR_MATERIAL); glDisable(GL_COLOR_MATERIAL);
glDisable(GL_LIGHTING); glDisable(GL_LIGHTING);
GPU_disable_material(); GPU_object_material_unbind();
} }
} }
else { else {
@@ -4220,12 +4220,12 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
} }
} }
dm->drawFacesSolid(dm, fpl, fast, GPU_enable_material); dm->drawFacesSolid(dm, fpl, fast, GPU_object_material_bind);
} }
else else
dm->drawFacesSolid(dm, NULL, 0, GPU_enable_material); dm->drawFacesSolid(dm, NULL, 0, GPU_object_material_bind);
GPU_disable_material(); GPU_object_material_unbind();
glFrontFace(GL_CCW); glFrontFace(GL_CCW);
glDisable(GL_LIGHTING); glDisable(GL_LIGHTING);
@@ -4588,7 +4588,7 @@ static void drawDispListsolid(ListBase *lb, Object *ob, const short dflag,
case DL_SURF: case DL_SURF:
if (dl->index) { if (dl->index) {
GPU_enable_material(dl->col + 1, (use_glsl) ? &gattribs : NULL); GPU_object_material_bind(dl->col + 1, (use_glsl) ? &gattribs : NULL);
if (dl->rt & CU_SMOOTH) glShadeModel(GL_SMOOTH); if (dl->rt & CU_SMOOTH) glShadeModel(GL_SMOOTH);
else glShadeModel(GL_FLAT); else glShadeModel(GL_FLAT);
@@ -4602,7 +4602,7 @@ static void drawDispListsolid(ListBase *lb, Object *ob, const short dflag,
break; break;
case DL_INDEX3: case DL_INDEX3:
GPU_enable_material(dl->col + 1, (use_glsl) ? &gattribs : NULL); GPU_object_material_bind(dl->col + 1, (use_glsl) ? &gattribs : NULL);
glVertexPointer(3, GL_FLOAT, 0, dl->verts); glVertexPointer(3, GL_FLOAT, 0, dl->verts);
@@ -4622,7 +4622,7 @@ static void drawDispListsolid(ListBase *lb, Object *ob, const short dflag,
break; break;
case DL_INDEX4: case DL_INDEX4:
GPU_enable_material(dl->col + 1, (use_glsl) ? &gattribs : NULL); GPU_object_material_bind(dl->col + 1, (use_glsl) ? &gattribs : NULL);
glEnableClientState(GL_NORMAL_ARRAY); glEnableClientState(GL_NORMAL_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, dl->verts); glVertexPointer(3, GL_FLOAT, 0, dl->verts);
@@ -4667,11 +4667,11 @@ static bool drawCurveDerivedMesh(Scene *scene, View3D *v3d, RegionView3D *rv3d,
if (!glsl) { if (!glsl) {
glEnable(GL_LIGHTING); glEnable(GL_LIGHTING);
dm->drawFacesSolid(dm, NULL, 0, GPU_enable_material); dm->drawFacesSolid(dm, NULL, 0, GPU_object_material_bind);
glDisable(GL_LIGHTING); glDisable(GL_LIGHTING);
} }
else else
dm->drawFacesGLSL(dm, GPU_enable_material); dm->drawFacesGLSL(dm, GPU_object_material_bind);
GPU_end_object_materials(); GPU_end_object_materials();
} }
@@ -7938,10 +7938,10 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
} }
else { else {
if (dt > OB_WIRE) if (dt > OB_WIRE)
GPU_enable_material(0, NULL); /* we use default material */ GPU_object_material_bind(0, NULL); /* we use default material */
empty_object = draw_armature(scene, v3d, ar, base, dt, dflag, ob_wire_col, false); empty_object = draw_armature(scene, v3d, ar, base, dt, dflag, ob_wire_col, false);
if (dt > OB_WIRE) if (dt > OB_WIRE)
GPU_disable_material(); GPU_object_material_unbind();
} }
} }
break; break;
@@ -8540,7 +8540,7 @@ static void bbs_mesh_solid_verts(Scene *scene, Object *ob)
DM_update_materials(dm, ob); DM_update_materials(dm, ob);
dm->drawMappedFaces(dm, bbs_mesh_solid_hide2__setDrawOpts, GPU_enable_material, NULL, me, DM_DRAW_SKIP_HIDDEN); dm->drawMappedFaces(dm, bbs_mesh_solid_hide2__setDrawOpts, GPU_object_material_bind, NULL, me, DM_DRAW_SKIP_HIDDEN);
bbs_obmode_mesh_verts(ob, dm, 1); bbs_obmode_mesh_verts(ob, dm, 1);
bm_vertoffs = me->totvert + 1; bm_vertoffs = me->totvert + 1;
@@ -8676,11 +8676,11 @@ static void draw_object_mesh_instance(Scene *scene, View3D *v3d, RegionView3D *r
glEnable(GL_LIGHTING); glEnable(GL_LIGHTING);
if (dm) { if (dm) {
dm->drawFacesSolid(dm, NULL, 0, GPU_enable_material); dm->drawFacesSolid(dm, NULL, 0, GPU_object_material_bind);
GPU_end_object_materials(); GPU_end_object_materials();
} }
else if (edm) else if (edm)
edm->drawMappedFaces(edm, NULL, GPU_enable_material, NULL, NULL, 0); edm->drawMappedFaces(edm, NULL, GPU_object_material_bind, NULL, NULL, 0);
glDisable(GL_LIGHTING); glDisable(GL_LIGHTING);
} }

View File

@@ -63,7 +63,7 @@ void GPU_state_init(void);
* - first the state is initialized by a particular object and * - first the state is initialized by a particular object and
* it's materials * it's materials
* - after this, materials can be quickly enabled by their number, * - after this, materials can be quickly enabled by their number,
* GPU_enable_material returns 0 if drawing should be skipped * GPU_object_material_bind returns 0 if drawing should be skipped
* - after drawing, the material must be disabled again */ * - after drawing, the material must be disabled again */
void GPU_begin_object_materials(struct View3D *v3d, struct RegionView3D *rv3d, void GPU_begin_object_materials(struct View3D *v3d, struct RegionView3D *rv3d,
@@ -71,8 +71,8 @@ void GPU_begin_object_materials(struct View3D *v3d, struct RegionView3D *rv3d,
void GPU_end_object_materials(void); void GPU_end_object_materials(void);
bool GPU_object_materials_check(void); bool GPU_object_materials_check(void);
int GPU_enable_material(int nr, void *attribs); int GPU_object_material_bind(int nr, void *attribs);
void GPU_disable_material(void); void GPU_object_material_unbind(void);
void GPU_begin_dupli_object(struct DupliObject *dob); void GPU_begin_dupli_object(struct DupliObject *dob);
void GPU_end_dupli_object(void); void GPU_end_dupli_object(void);

View File

@@ -1414,7 +1414,7 @@ static struct GPUMaterialState {
int totmat; int totmat;
/* set when called inside GPU_begin_object_materials / GPU_end_object_materials /* set when called inside GPU_begin_object_materials / GPU_end_object_materials
* otherwise calling GPU_enable_material returns zero */ * otherwise calling GPU_object_material_bind returns zero */
bool is_enabled; bool is_enabled;
Material **gmatbuf; Material **gmatbuf;
@@ -1668,7 +1668,7 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O
} }
/* let's start with a clean state */ /* let's start with a clean state */
GPU_disable_material(); GPU_object_material_unbind();
} }
static int GPU_get_particle_info(GPUParticleInfo *pi) static int GPU_get_particle_info(GPUParticleInfo *pi)
@@ -1701,7 +1701,7 @@ static int GPU_get_particle_info(GPUParticleInfo *pi)
return 0; return 0;
} }
int GPU_enable_material(int nr, void *attribs) int GPU_object_material_bind(int nr, void *attribs)
{ {
GPUVertexAttribs *gattribs = attribs; GPUVertexAttribs *gattribs = attribs;
GPUMaterial *gpumat; GPUMaterial *gpumat;
@@ -1824,7 +1824,7 @@ int GPU_get_material_alpha_blend(void)
return GMS.lastalphablend; return GMS.lastalphablend;
} }
void GPU_disable_material(void) void GPU_object_material_unbind(void)
{ {
GMS.lastmatnr = -1; GMS.lastmatnr = -1;
GMS.lastretval = 1; GMS.lastretval = 1;
@@ -1868,7 +1868,7 @@ bool GPU_object_materials_check(void)
void GPU_end_object_materials(void) void GPU_end_object_materials(void)
{ {
GPU_disable_material(); GPU_object_material_unbind();
GMS.is_enabled = false; GMS.is_enabled = false;