forked from bartvdbraak/blender
changed how shading works in editmode
Texture Draw; no shading only textures (better for mapping work) Shaded Draw; textured with shading (in editmode it used to be like solid draw mode) ZClip Option; dont draw face center dots.
This commit is contained in:
parent
fcd2d30004
commit
2a6f7c349c
@ -5286,8 +5286,9 @@ static void editing_panel_mesh_texface(void)
|
||||
MTFace *tf;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "editing_panel_mesh_texface", UI_EMBOSS, UI_HELV, curarea->win);
|
||||
if(uiNewPanel(curarea, block, "Texture face", "Editing", 960, 0, 318, 204)==0) return;
|
||||
|
||||
uiNewPanelTabbed("Multires", "Editing");
|
||||
if(uiNewPanel(curarea, block, "Texture Face", "Editing", 960, 0, 318, 204)==0) return;
|
||||
|
||||
tf = get_active_mtface(NULL, NULL);
|
||||
if(tf) {
|
||||
uiBlockBeginAlign(block);
|
||||
@ -5314,17 +5315,6 @@ static void editing_panel_mesh_texface(void)
|
||||
uiDefButC(block, ROW, REDRAWVIEW3D, "Opaque", 600,80,60,19, &tf->transp, 2.0, 0.0, 0, 0, "Render color of textured face as color");
|
||||
uiDefButC(block, ROW, REDRAWVIEW3D, "Add", 660,80,60,19, &tf->transp, 2.0, 1.0, 0, 0, "Render face transparent and add color of face");
|
||||
uiDefButC(block, ROW, REDRAWVIEW3D, "Alpha", 720,80,60,19, &tf->transp, 2.0, 2.0, 0, 0, "Render polygon transparent, depending on alpha channel of the texture");
|
||||
|
||||
uiBlockSetCol(block, TH_AUTO);
|
||||
|
||||
uiBlockBeginAlign(block);
|
||||
uiDefButF(block, COL, B_VPCOLSLI, "", 769,40,40,28, &(Gvp.r), 0, 0, 0, 0, "");
|
||||
uiDefBut(block, BUT, B_SET_VCOL, "Set VertCol", 809,40,103,28, 0, 0, 0, 0, 0, "Set Vertex color of selection to current (Shift+K)");
|
||||
|
||||
uiBlockBeginAlign(block);
|
||||
uiDefBut(block, BUT, B_COPY_TF_MODE, "Copy DrawMode", 600,7,117,28, 0, 0, 0, 0, 0, "Copy the drawmode from active face to selected faces");
|
||||
uiDefBut(block, BUT, B_COPY_TF_UV, "Copy UV+tex", 721,7,85,28, 0, 0, 0, 0, 0, "Copy UV information and textures from active face to selected faces");
|
||||
uiDefBut(block, BUT, B_COPY_TF_COL, "Copy VertCol", 809,7,103,28, 0, 0, 0, 0, 0, "Copy vertex colors from active face to selected faces");
|
||||
}
|
||||
}
|
||||
|
||||
@ -5345,7 +5335,7 @@ static void editing_panel_mesh_uvautocalculation(void)
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "editing_panel_mesh_uvautocalculation", UI_EMBOSS, UI_HELV, curarea->win);
|
||||
/* make this a tab of "Texture face" to save screen space*/
|
||||
uiNewPanelTabbed("Modifiers", "Editing");
|
||||
uiNewPanelTabbed("Multires", "Editing");
|
||||
if(uiNewPanel(curarea, block, "UV Calculation", "Editing", 960, 0, 318, 204)==0)
|
||||
return;
|
||||
row-= 4*butHB+butS;
|
||||
@ -5475,6 +5465,8 @@ void editing_panels()
|
||||
editing_panel_mesh_tools(ob, ob->data);
|
||||
editing_panel_mesh_tools1(ob, ob->data);
|
||||
editing_panel_mesh_uvautocalculation();
|
||||
if (EM_texFaceCheck())
|
||||
editing_panel_mesh_texface();
|
||||
}
|
||||
else if(G.f & G_SCULPTMODE) {
|
||||
uiNewPanelTabbed("Multires", "Editing");
|
||||
@ -5482,9 +5474,6 @@ void editing_panels()
|
||||
uiNewPanelTabbed("Multires", "Editing");
|
||||
editing_panel_sculpting_textures();
|
||||
} else {
|
||||
if(FACESEL_PAINT_TEST) {
|
||||
editing_panel_mesh_texface();
|
||||
}
|
||||
if(G.f & (G_VERTEXPAINT | G_TEXTUREPAINT | G_WEIGHTPAINT) ) {
|
||||
editing_panel_mesh_paint();
|
||||
}
|
||||
|
@ -293,50 +293,44 @@ void image_changed(SpaceImage *sima, int dotile)
|
||||
if(sima->image==NULL)
|
||||
sima->flag &= ~SI_DRAWTOOL;
|
||||
|
||||
if(sima->mode==SI_TEXTURE) {
|
||||
if(sima->mode!=SI_TEXTURE || !EM_texFaceCheck())
|
||||
return;
|
||||
|
||||
if(EM_texFaceCheck()) {
|
||||
/* skip assigning these procedural images... */
|
||||
if(sima->image) {
|
||||
if(sima->image->type==IMA_TYPE_R_RESULT)
|
||||
return;
|
||||
if(sima->image->type==IMA_TYPE_COMPOSITE)
|
||||
return;
|
||||
}
|
||||
/*
|
||||
tface= me->mtface;
|
||||
mface = me->mface;
|
||||
a= me->totface;
|
||||
while(a--) {
|
||||
if(mface->flag & ME_FACE_SEL) {
|
||||
*/
|
||||
for (efa= em->faces.first; efa; efa= efa->next) {
|
||||
if (efa->f & SELECT) {
|
||||
tface = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
|
||||
|
||||
if(dotile==2) {
|
||||
tface->mode &= ~TF_TILES;
|
||||
}
|
||||
else {
|
||||
tface->tpage= sima->image;
|
||||
tface->mode |= TF_TEX;
|
||||
/* skip assigning these procedural images... */
|
||||
if(sima->image) {
|
||||
if(sima->image->type==IMA_TYPE_R_RESULT)
|
||||
return;
|
||||
if(sima->image->type==IMA_TYPE_COMPOSITE)
|
||||
return;
|
||||
}
|
||||
|
||||
for (efa= em->faces.first; efa; efa= efa->next) {
|
||||
if (efa->f & SELECT) {
|
||||
tface = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
|
||||
|
||||
if(dotile==2) {
|
||||
tface->mode &= ~TF_TILES;
|
||||
} else {
|
||||
if (sima->image) {
|
||||
tface->tpage= sima->image;
|
||||
tface->mode |= TF_TEX;
|
||||
|
||||
if(dotile) tface->tile= sima->curtile;
|
||||
}
|
||||
if(sima->image->tpageflag & IMA_TILES) tface->mode |= TF_TILES;
|
||||
else tface->mode &= ~TF_TILES;
|
||||
|
||||
if(sima->image) {
|
||||
if(sima->image->tpageflag & IMA_TILES) tface->mode |= TF_TILES;
|
||||
else tface->mode &= ~TF_TILES;
|
||||
|
||||
if(sima->image->id.us==0) id_us_plus(&sima->image->id);
|
||||
else id_lib_extern(&sima->image->id);
|
||||
}
|
||||
if(sima->image->id.us==0) id_us_plus(&sima->image->id);
|
||||
else id_lib_extern(&sima->image->id);
|
||||
} else {
|
||||
tface->tpage= NULL;
|
||||
tface->mode &= ~TF_TEX;
|
||||
}
|
||||
|
||||
if(dotile) tface->tile= sima->curtile;
|
||||
}
|
||||
object_uvs_changed(OBACT);
|
||||
allqueue(REDRAWBUTSEDIT, 0);
|
||||
}
|
||||
}
|
||||
object_uvs_changed(OBACT);
|
||||
allqueue(REDRAWBUTSEDIT, 0);
|
||||
}
|
||||
|
||||
|
||||
@ -896,7 +890,7 @@ static void image_panel_game_properties(short cntrl) // IMAGE_HANDLER_GAME_PROPE
|
||||
uiBlockEndAlign(block);
|
||||
|
||||
uiBlockBeginAlign(block);
|
||||
uiDefButBitS(block, TOG, IMA_TILES, B_SIMAGEDRAW1, "Tiles", 160,150,140,19, &G.sima->image->tpageflag, 0, 0, 0, 0, "Toggles use of tilemode for faces");
|
||||
uiDefButBitS(block, TOG, IMA_TILES, B_SIMAGEDRAW1, "Tiles", 160,150,140,19, &G.sima->image->tpageflag, 0, 0, 0, 0, "Toggles use of tilemode for faces (Shift LMB to pick the tile for selected faces)");
|
||||
uiDefButS(block, NUM, B_SIMAGEDRAW, "X:", 160,130,70,19, &G.sima->image->xrep, 1.0, 16.0, 0, 0, "Sets the degree of repetition in the X direction");
|
||||
uiDefButS(block, NUM, B_SIMAGEDRAW, "Y:", 230,130,70,19, &G.sima->image->yrep, 1.0, 16.0, 0, 0, "Sets the degree of repetition in the Y direction");
|
||||
uiBlockBeginAlign(block);
|
||||
|
@ -953,7 +953,7 @@ static void draw_textured_begin(Object *ob)
|
||||
unsigned char obcol[4];
|
||||
int istex, solidtex= 0;
|
||||
|
||||
if(G.vd->drawtype==OB_SOLID || ob==G.obedit) {
|
||||
if(G.vd->drawtype==OB_SOLID || (ob==G.obedit && G.vd->drawtype!=OB_TEXTURE)) {
|
||||
/* draw with default lights in solid draw mode and edit mode */
|
||||
solidtex= 1;
|
||||
Gtexdraw.islit= -1;
|
||||
@ -1186,9 +1186,9 @@ void draw_mesh_textured(Object *ob, DerivedMesh *dm, int faceselect)
|
||||
}
|
||||
else {
|
||||
#endif
|
||||
if(ob==G.obedit)
|
||||
if(ob==G.obedit) {
|
||||
dm->drawMappedFacesTex(dm, draw_em_tf_mapped__set_draw, G.editMesh);
|
||||
else if(faceselect) {
|
||||
} else if(faceselect) {
|
||||
if(G.f & G_WEIGHTPAINT)
|
||||
dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, me, 1);
|
||||
else
|
||||
@ -1220,6 +1220,9 @@ void draw_mesh_textured(Object *ob, DerivedMesh *dm, int faceselect)
|
||||
|
||||
/* reset from negative scale correction */
|
||||
glFrontFace(GL_CCW);
|
||||
|
||||
/* in editmode, the blend mode needs to be set incase it was ADD */
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
||||
dm->release(dm);
|
||||
}
|
||||
|
@ -1632,7 +1632,10 @@ static void draw_em_fancy_verts(EditMesh *em, DerivedMesh *cageDM)
|
||||
draw_dm_verts(cageDM, sel);
|
||||
}
|
||||
|
||||
if(G.scene->selectmode & SCE_SELECT_FACE && G.vd->drawtype!=OB_TEXTURE) {
|
||||
if( (G.scene->selectmode & SCE_SELECT_FACE) &&
|
||||
(G.vd->drawtype<=OB_SOLID) &&
|
||||
( !((G.vd->flag & V3D_ZBUF_SELECT) && (G.vd->drawtype==OB_SOLID)) )
|
||||
) {
|
||||
glPointSize(fsize);
|
||||
glColor4ubv((GLubyte *)fcol);
|
||||
draw_dm_face_centers(cageDM, sel);
|
||||
@ -1947,8 +1950,9 @@ static void draw_em_fancy(Object *ob, EditMesh *em, DerivedMesh *cageDM, Derived
|
||||
if(dt>OB_WIRE) {
|
||||
if(G.vd->drawtype==OB_TEXTURE && dt>OB_SOLID) {
|
||||
draw_mesh_textured(ob, finalDM, 0);
|
||||
}
|
||||
else {
|
||||
} else if(G.vd->drawtype==OB_SHADED && dt>OB_SOLID) {
|
||||
draw_mesh_textured(ob, finalDM, 0);
|
||||
} else {
|
||||
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, me->flag & ME_TWOSIDED);
|
||||
|
||||
glEnable(GL_LIGHTING);
|
||||
@ -4448,7 +4452,10 @@ static int bbs_mesh_solid_EM(DerivedMesh *dm, int facecol)
|
||||
if (facecol) {
|
||||
dm->drawMappedFaces(dm, bbs_mesh_solid__setSolidDrawOptions, (void*)(long) 1, 0);
|
||||
|
||||
if(G.scene->selectmode & SCE_SELECT_FACE && G.vd->drawtype!=OB_TEXTURE) {
|
||||
if( (G.scene->selectmode & SCE_SELECT_FACE) &&
|
||||
(G.vd->drawtype<=OB_SOLID) &&
|
||||
( !((G.vd->flag & V3D_ZBUF_SELECT) && (G.vd->drawtype==OB_SOLID)) )
|
||||
) {
|
||||
glPointSize(BIF_GetThemeValuef(TH_FACEDOT_SIZE));
|
||||
|
||||
bglBegin(GL_POINTS);
|
||||
|
@ -2078,8 +2078,10 @@ void mouse_mesh(void)
|
||||
countall();
|
||||
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
if (EM_texFaceCheck())
|
||||
if (EM_texFaceCheck()) {
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
allqueue(REDRAWBUTSEDIT, 0); /* for the texture face panel */
|
||||
}
|
||||
}
|
||||
|
||||
rightmouse_transform();
|
||||
|
Loading…
Reference in New Issue
Block a user