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
path: root/source
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2006-06-17 14:25:07 +0400
committerTon Roosendaal <ton@blender.org>2006-06-17 14:25:07 +0400
commit5a4dc67281de18829a211cb7a531b9cd3530f377 (patch)
tree71720d6f0341e27464aeb0f0529fe8fe201b2062 /source
parent5498f4989f2340a4e61cdfa2e1bc858ab8acd4b6 (diff)
Cleanup of UI for new renderpipeline
- removed "Unified" button, replaced with "HD" preset for 1920x1080 output - removed the unused "Pass" options - removed the unused "Strands" render-layer option Because the internal render pipe supports this already; added two more render-layer options: - "Sky", to enable/disable sky render in a layer (this was part of "Solid" before, not so correct... to ensure previously saved files work, the "Sky" option is set by default when "Solid" was set. The version patching will do this temporally always, until we've bumped up version to 2.42 - "Edge", to enable/disable edge render in a layer. Nice for compositing. Also in this commit: fixed warnings for exported functions for the new Node Editor pull-down menus.
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/scene.c2
-rw-r--r--source/blender/blenloader/intern/readfile.c8
-rw-r--r--source/blender/include/BSE_node.h1
-rw-r--r--source/blender/include/butspace.h7
-rw-r--r--source/blender/makesdna/DNA_scene_types.h4
-rw-r--r--source/blender/render/intern/source/rendercore.c68
-rw-r--r--source/blender/src/buttons_scene.c79
-rw-r--r--source/blender/src/editnode.c1
8 files changed, 97 insertions, 73 deletions
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index f1b12256dfb..0858a15c899 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -537,7 +537,7 @@ void scene_add_render_layer(Scene *sce)
/* note, this is also in render, pipeline.c, to make layer when scenedata doesnt have it */
srl->lay= (1<<20) -1;
- srl->layflag= 0x7FFF; /* solid ztra halo strand */
+ srl->layflag= 0x7FFF; /* solid ztra halo edge strand */
srl->passflag= SCE_PASS_COMBINED|SCE_PASS_Z;
}
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 7213970fccb..3720c85361d 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -5415,6 +5415,14 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
/* adds default layer */
if(sce->r.layers.first==NULL)
scene_add_render_layer(sce);
+ else {
+ SceneRenderLayer *srl;
+ /* new layer flag for sky, was default for solid */
+ for(srl= sce->r.layers.first; srl; srl= srl->next)
+ if(srl->layflag & SCE_LAY_SOLID)
+ srl->layflag |= SCE_LAY_SKY;
+ }
+
/* node version changes */
if(sce->nodetree)
ntree_version_241(sce->nodetree);
diff --git a/source/blender/include/BSE_node.h b/source/blender/include/BSE_node.h
index 981cec9e830..19b1d8fc131 100644
--- a/source/blender/include/BSE_node.h
+++ b/source/blender/include/BSE_node.h
@@ -77,6 +77,7 @@ void node_composit_default(struct Scene *scene);
int node_has_hidden_sockets(struct bNode *node);
struct bNode *node_add_node(struct SpaceNode *snode, int type, float locx, float locy);
+void node_adduplicate(struct SpaceNode *snode);
/* ************* drawnode.c *************** */
struct SpaceNode;
diff --git a/source/blender/include/butspace.h b/source/blender/include/butspace.h
index 010313f91a4..a58ad7ffd31 100644
--- a/source/blender/include/butspace.h
+++ b/source/blender/include/butspace.h
@@ -294,11 +294,10 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la
#define B_PR_PAL 1608
#define B_PR_FULL 1609
#define B_PR_PRV 1610
-#define B_PR_CDI 1611
+#define B_PR_HD 1611
#define B_PR_PAL169 1612
-#define B_PR_D2MAC 1613
-#define B_PR_MPEG 1614
-#define B_REDRAWDISP 1615
+
+#define B_REDRAWDISP 1615
#define B_SETBROWSE 1616
#define B_CLEARSET 1617
#define B_PR_PRESET 1618
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index 5dc0b408b7a..777ccf06a89 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -125,7 +125,9 @@ typedef struct SceneRenderLayer {
#define SCE_LAY_SOLID 1
#define SCE_LAY_ZTRA 2
#define SCE_LAY_HALO 4
-#define SCE_LAY_STRAND 8
+#define SCE_LAY_EDGE 8
+#define SCE_LAY_SKY 16
+#define SCE_LAY_STRAND 32
/* srl->passflag */
#define SCE_PASS_COMBINED 1
diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c
index d75cd78da07..f547705926c 100644
--- a/source/blender/render/intern/source/rendercore.c
+++ b/source/blender/render/intern/source/rendercore.c
@@ -2671,9 +2671,11 @@ static void shadepixel_sky(ShadePixelInfo *shpi, float x, float y, int z, int fa
if(vlr && (R.r.mode & R_RAYTRACE))
if(vlr->mat->mode & MA_RAYTRANSP) return;
- renderSkyPixelFloat(collector, x, y, vlr?rco:NULL);
- addAlphaOverFloat(collector, shpi->shr.combined);
- QUATCOPY(shpi->shr.combined, collector);
+ if(shpi->layflag & SCE_LAY_SKY) {
+ renderSkyPixelFloat(collector, x, y, vlr?rco:NULL);
+ addAlphaOverFloat(collector, shpi->shr.combined);
+ QUATCOPY(shpi->shr.combined, collector);
+ }
}
}
@@ -2876,6 +2878,19 @@ static void add_passes(RenderLayer *rl, int offset, ShadeResult *shr)
}
}
+/* only do sky, is default in the solid layer (shade_tile) btw */
+static void sky_tile(RenderPart *pa, float *pass)
+{
+ int x, y;
+
+ for(y=pa->disprect.ymin; y<pa->disprect.ymax; y++) {
+ for(x=pa->disprect.xmin; x<pa->disprect.xmax; x++, pass+=4)
+ renderSkyPixelFloat(pass, x, y, NULL);
+
+ if(y&1)
+ if(R.test_break()) break;
+ }
+}
static void shadeDA_tile(RenderPart *pa, RenderLayer *rl)
{
@@ -3124,13 +3139,18 @@ void zbufshadeDA_tile(RenderPart *pa)
zbuffer_solid(pa, rl->lay, rl->layflag);
make_pixelstructs(pa, &psmlist);
- if(R.r.mode & R_EDGE) edge_enhance_calc(pa, edgerect);
+ if(rl->layflag & SCE_LAY_EDGE)
+ if(R.r.mode & R_EDGE)
+ edge_enhance_calc(pa, edgerect);
+
if(R.test_break()) break;
}
/* shades solid */
if(rl->layflag & SCE_LAY_SOLID)
shadeDA_tile(pa, rl);
+ else if(rl->layflag & SCE_LAY_SKY)
+ sky_tile(pa, rl->rectf);
/* lamphalo after solid, before ztra, looks nicest because ztra does own halo */
if(R.flag & R_LAMPHALO)
@@ -3167,8 +3187,9 @@ void zbufshadeDA_tile(RenderPart *pa)
}
/* extra layers */
- if(R.r.mode & R_EDGE)
- edge_enhance_add(pa, rl->rectf, edgerect);
+ if(rl->layflag & SCE_LAY_EDGE)
+ if(R.r.mode & R_EDGE)
+ edge_enhance_add(pa, rl->rectf, edgerect);
if(rl->passflag & SCE_PASS_Z)
convert_zbuf_to_distbuf(pa, rl);
@@ -3198,6 +3219,7 @@ void zbufshade_tile(RenderPart *pa)
ShadePixelInfo shpi;
RenderResult *rr= pa->result;
RenderLayer *rl;
+ float *edgerect= NULL;
int addpassflag;
set_part_zbuf_clipflag(pa);
@@ -3205,7 +3227,8 @@ void zbufshade_tile(RenderPart *pa)
/* zbuffer code clears/inits rects */
pa->rectp= MEM_mallocT(sizeof(int)*pa->rectx*pa->recty, "rectp");
pa->rectz= MEM_mallocT(sizeof(int)*pa->rectx*pa->recty, "rectz");
-
+ if(R.r.mode & R_EDGE) edgerect= MEM_callocT(sizeof(float)*pa->rectx*pa->recty, "rectedge");
+
shpi.thread= pa->thread;
for(rl= rr->layers.first; rl; rl= rl->next) {
@@ -3222,14 +3245,19 @@ void zbufshade_tile(RenderPart *pa)
zbuffer_solid(pa, rl->lay, rl->layflag);
if(!R.test_break()) {
+ /* edges only for solid part, ztransp doesn't support it yet anti-aliased */
+ if(rl->layflag & SCE_LAY_EDGE)
+ if(R.r.mode & R_EDGE)
+ edge_enhance_calc(pa, edgerect);
+
+ /* initialize scanline updates for main thread */
+ rr->renrect.ymin= 0;
+ rr->renlay= rl;
+
if(rl->layflag & SCE_LAY_SOLID) {
float *fcol= rl->rectf;
int x, y, *rp= pa->rectp, *rz= pa->rectz, offs=0;
- /* initialize scanline updates for main thread */
- rr->renrect.ymin= 0;
- rr->renlay= rl;
-
for(y=pa->disprect.ymin; y<pa->disprect.ymax; y++, rr->renrect.ymax++) {
for(x=pa->disprect.xmin; x<pa->disprect.xmax; x++, rz++, rp++, fcol+=4, offs++) {
shadepixel_sky(&shpi, (float)x, (float)y, *rz, *rp, 0);
@@ -3242,10 +3270,13 @@ void zbufshade_tile(RenderPart *pa)
if(y&1)
if(R.test_break()) break;
}
-
- /* disable scanline updating */
- rr->renlay= NULL;
}
+ else if(rl->layflag & SCE_LAY_SKY) {
+ sky_tile(pa, rl->rectf);
+ }
+
+ /* disable scanline updating */
+ rr->renlay= NULL;
}
/* lamphalo after solid, before ztra, looks nicest because ztra does own halo */
@@ -3282,11 +3313,9 @@ void zbufshade_tile(RenderPart *pa)
}
if(!R.test_break()) {
- if(R.r.mode & R_EDGE) {
- fillrect(pa->rectp, pa->rectx, pa->recty, 0);
- edge_enhance_calc(pa, (float *)pa->rectp);
- edge_enhance_add(pa, rl->rectf, (float *)pa->rectp);
- }
+ if(rl->layflag & SCE_LAY_EDGE)
+ if(R.r.mode & R_EDGE)
+ edge_enhance_add(pa, rl->rectf, edgerect);
}
if(rl->passflag & SCE_PASS_Z)
@@ -3300,6 +3329,7 @@ void zbufshade_tile(RenderPart *pa)
MEM_freeT(pa->rectp); pa->rectp= NULL;
MEM_freeT(pa->rectz); pa->rectz= NULL;
+ if(edgerect) MEM_freeT(edgerect);
}
/* ------------------------------------------------------------------------ */
diff --git a/source/blender/src/buttons_scene.c b/source/blender/src/buttons_scene.c
index 83dd9c6e86c..77ab2f30ff9 100644
--- a/source/blender/src/buttons_scene.c
+++ b/source/blender/src/buttons_scene.c
@@ -640,6 +640,20 @@ void do_render_panels(unsigned short event)
#endif /* _WIN32 || __APPLE__ */
break;
+ case B_PR_HD:
+ G.scene->r.xsch= 1920;
+ G.scene->r.ysch= 1080;
+ G.scene->r.xasp= 1;
+ G.scene->r.yasp= 1;
+ G.scene->r.size= 100;
+ G.scene->r.mode &= ~R_PANORAMA;
+ G.scene->r.xparts= G.scene->r.yparts= 4;
+
+ BLI_init_rctf(&G.scene->r.safety, 0.1, 0.9, 0.1, 0.9);
+ BIF_undo_push("Set FULL");
+ allqueue(REDRAWBUTSSCENE, 0);
+ allqueue(REDRAWVIEWCAM, 0);
+ break;
case B_PR_FULL:
G.scene->r.xsch= 1280;
G.scene->r.ysch= 1024;
@@ -661,25 +675,12 @@ void do_render_panels(unsigned short event)
G.scene->r.yasp= 1;
G.scene->r.size= 50;
G.scene->r.mode &= ~R_PANORAMA;
- G.scene->r.xparts= G.scene->r.yparts= 4;
+ G.scene->r.xparts= G.scene->r.yparts= 2;
BLI_init_rctf(&G.scene->r.safety, 0.1, 0.9, 0.1, 0.9);
allqueue(REDRAWVIEWCAM, 0);
allqueue(REDRAWBUTSSCENE, 0);
break;
- case B_PR_CDI:
- G.scene->r.xsch= 384;
- G.scene->r.ysch= 280;
- G.scene->r.xasp= 1;
- G.scene->r.yasp= 1;
- G.scene->r.size= 100;
- G.scene->r.mode &= ~R_PANORAMA;
- G.scene->r.xparts= G.scene->r.yparts= 4;
-
- BLI_init_rctf(&G.scene->r.safety, 0.15, 0.85, 0.15, 0.85);
- allqueue(REDRAWVIEWCAM, 0);
- allqueue(REDRAWBUTSSCENE, 0);
- break;
case B_PR_PAL169:
G.scene->r.xsch= 720;
G.scene->r.ysch= 576;
@@ -698,32 +699,6 @@ void do_render_panels(unsigned short event)
allqueue(REDRAWVIEWCAM, 0);
allqueue(REDRAWBUTSSCENE, 0);
break;
- case B_PR_D2MAC:
- G.scene->r.xsch= 1024;
- G.scene->r.ysch= 576;
- G.scene->r.xasp= 1;
- G.scene->r.yasp= 1;
- G.scene->r.size= 50;
- G.scene->r.mode &= ~R_PANORAMA;
- G.scene->r.xparts= G.scene->r.yparts= 4;
-
- BLI_init_rctf(&G.scene->r.safety, 0.1, 0.9, 0.1, 0.9);
- allqueue(REDRAWVIEWCAM, 0);
- allqueue(REDRAWBUTSSCENE, 0);
- break;
- case B_PR_MPEG:
- G.scene->r.xsch= 368;
- G.scene->r.ysch= 272;
- G.scene->r.xasp= 105;
- G.scene->r.yasp= 100;
- G.scene->r.size= 100;
- G.scene->r.mode &= ~R_PANORAMA;
- G.scene->r.xparts= G.scene->r.yparts= 4;
-
- BLI_init_rctf(&G.scene->r.safety, 0.1, 0.9, 0.1, 0.9);
- allqueue(REDRAWVIEWCAM, 0);
- allqueue(REDRAWBUTSSCENE, 0);
- break;
case B_PR_PC:
G.scene->r.xsch= 640;
G.scene->r.ysch= 480;
@@ -1226,8 +1201,8 @@ static void render_panel_output(void)
/* Toon shading buttons */
uiBlockBeginAlign(block);
- uiDefButBitI(block, TOG, R_EDGE, B_NOP,"Edge", 100, 94, 70, 20, &G.scene->r.mode, 0, 0, 0, 0, "Enable Toon edge shading");
- uiDefBlockBut(block, edge_render_menu, NULL, "Edge Settings", 170, 94, 140, 20, "Display edge settings");
+ uiDefButBitI(block, TOG, R_EDGE, B_NOP,"Edge", 100, 94, 70, 20, &G.scene->r.mode, 0, 0, 0, 0, "Enable Toon Edge-enhance");
+ uiDefBlockBut(block, edge_render_menu, NULL, "Edge Settings", 170, 94, 140, 20, "Display Edge settings");
uiBlockEndAlign(block);
uiDefButBitS(block, TOG, R_FREE_IMAGE, B_NOP, "Free Tex Images", 170, 68, 140, 20, &G.scene->r.scemode, 0.0, 0.0, 0, 0, "Frees all Images used by Textures after each render");
@@ -1596,7 +1571,7 @@ static void render_panel_format(void)
uiDefBut(block, BUT,B_PR_PAL169, "PAL 16:9",1146,70,100,18, 0, 0, 0, 0, 0, "Size preset: Image size - 720x576, Aspect ratio - 64x45");
uiDefBut(block, BUT,B_PR_PANO, "PANO", 1146,50,100,18, 0, 0, 0, 0, 0, "Standard panorama settings");
uiDefBut(block, BUT,B_PR_FULL, "FULL", 1146,30,100,18, 0, 0, 0, 0, 0, "Size preset: Image size - 1280x1024, Aspect ratio - 1x1");
- uiDefButBitI(block, TOG, R_UNIFIED, B_REDR, "Unified Renderer", 1146,10,100,18, &G.scene->r.mode, 0, 0, 0, 0, "Use the unified renderer.");
+ uiDefBut(block, BUT,B_PR_HD, "HD", 1146,10,100,18, 0, 0, 0, 0, 0, "Size preset: Image size - 1920x1080, Aspect ratio - 1x1");
uiBlockEndAlign(block);
}
@@ -1846,13 +1821,22 @@ static void render_panel_layers(void)
draw_3d_layer_buttons(block, &srl->lay, 130, 95, 35, 30, B_NOP);
uiBlockBeginAlign(block);
- uiDefButBitS(block, TOG, SCE_LAY_SOLID, B_NOP,"Solid", 10, 70, 75, 20, &srl->layflag, 0, 0, 0, 0, "Render Solid faces in this Layer");
- uiDefButBitS(block, TOG, SCE_LAY_ZTRA, B_NOP,"Ztra", 85, 70, 75, 20, &srl->layflag, 0, 0, 0, 0, "Render Z-Transparent faces in this Layer");
- uiDefButBitS(block, TOG, SCE_LAY_HALO, B_NOP,"Halo", 160, 70, 75, 20, &srl->layflag, 0, 0, 0, 0, "Render Halos in this Layer");
- uiDefButBitS(block, TOG, SCE_LAY_STRAND, B_NOP,"Strand", 235, 70, 75, 20, &srl->layflag, 0, 0, 0, 0, "Render Particle Strands in this Layer");
+ uiDefButBitS(block, TOG, SCE_LAY_SKY, B_NOP,"Sky", 10, 70, 40, 20, &srl->layflag, 0, 0, 0, 0, "Render Solid faces in this Layer");
+ uiDefButBitS(block, TOG, SCE_LAY_SOLID, B_NOP,"Solid", 50, 70, 65, 20, &srl->layflag, 0, 0, 0, 0, "Render Solid faces in this Layer");
+ uiDefButBitS(block, TOG, SCE_LAY_ZTRA, B_NOP,"Ztra", 115, 70, 65, 20, &srl->layflag, 0, 0, 0, 0, "Render Z-Transparent faces in this Layer");
+ uiDefButBitS(block, TOG, SCE_LAY_HALO, B_NOP,"Halo", 180, 70, 65, 20, &srl->layflag, 0, 0, 0, 0, "Render Halos in this Layer");
+ uiDefButBitS(block, TOG, SCE_LAY_EDGE, B_NOP,"Edge", 245, 70, 65, 20, &srl->layflag, 0, 0, 0, 0, "Render Edge-enhance in this Layer");
uiBlockEndAlign(block);
uiDefBut(block, LABEL, 0, "Passes:", 10,30,150,20, NULL, 0, 0, 0, 0, "");
+
+ uiBlockBeginAlign(block);
+ uiDefButBitS(block, TOG, SCE_PASS_COMBINED, B_NOP,"Combined", 10, 10, 150, 20, &srl->passflag, 0, 0, 0, 0, "Deliver full combined RGBA buffer");
+ uiDefButBitS(block, TOG, SCE_PASS_Z, B_NOP,"Z", 160, 10, 40, 20, &srl->passflag, 0, 0, 0, 0, "Deliver Z values pass");
+ uiDefButBitS(block, TOG, SCE_PASS_VECTOR, B_NOP,"Vec", 200, 10, 55, 20, &srl->passflag, 0, 0, 0, 0, "Deliver Vector pass");
+ uiDefButBitS(block, TOG, SCE_PASS_NORMAL, B_NOP,"Nor", 255, 10, 55, 20, &srl->passflag, 0, 0, 0, 0, "Deliver Normal pass");
+#if 0
+ /* bring back after release */
uiBlockBeginAlign(block);
uiDefButBitS(block, TOG, SCE_PASS_COMBINED, B_NOP,"Combined", 130, 30, 115, 20, &srl->passflag, 0, 0, 0, 0, "Deliver full combined RGBA buffer");
uiDefButBitS(block, TOG, SCE_PASS_Z, B_NOP,"Z", 245, 30, 25, 20, &srl->passflag, 0, 0, 0, 0, "Deliver Z values pass");
@@ -1865,6 +1849,7 @@ static void render_panel_layers(void)
uiDefButBitS(block, TOG, SCE_PASS_AO, B_NOP,"AO", 185, 10, 40, 20, &srl->passflag, 0, 0, 0, 0, "Deliver AO pass");
uiDefButBitS(block, TOG, SCE_PASS_RAY, B_NOP,"Ray", 225, 10, 45, 20, &srl->passflag, 0, 0, 0, 0, "Deliver Raytraced Mirror and Transparent pass");
uiDefButBitS(block, TOG, SCE_PASS_NORMAL, B_NOP,"Nor", 270, 10, 40, 20, &srl->passflag, 0, 0, 0, 0, "Deliver Normal pass");
+#endif
}
void render_panels()
diff --git a/source/blender/src/editnode.c b/source/blender/src/editnode.c
index 2cc0efd5d02..202120198e7 100644
--- a/source/blender/src/editnode.c
+++ b/source/blender/src/editnode.c
@@ -1797,7 +1797,6 @@ static int node_uiDoBlocks(SpaceNode *snode, ListBase *lb, short event)
void winqreadnodespace(ScrArea *sa, void *spacedata, BWinEvent *evt)
{
SpaceNode *snode= spacedata;
- float dx;
unsigned short event= evt->event;
short val= evt->val, doredraw=0, fromlib= 0;