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
diff options
context:
space:
mode:
-rw-r--r--source/blender/blenkernel/intern/object.c1
-rw-r--r--source/blender/blenloader/intern/readfile.c18
-rw-r--r--source/blender/makesdna/DNA_camera_types.h6
-rw-r--r--source/blender/src/buttons_editing.c44
-rw-r--r--source/blender/src/buttons_scene.c1
-rw-r--r--source/blender/src/drawobject.c7
-rw-r--r--source/blender/src/drawview.c63
7 files changed, 102 insertions, 38 deletions
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index 6bdf6a7faa5..0cc09f9fac9 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -447,6 +447,7 @@ void *add_camera()
cam->clipend= 100.0f;
cam->drawsize= 0.5f;
cam->ortho_scale= 6.0;
+ cam->flag |= CAM_SHOWTITLESAFE;
return cam;
}
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 9fddd4212ea..7634ec5559c 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -4989,6 +4989,8 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
}
if(main->versionfile <= 239) {
Object *ob;
+ Scene *sce= main->scene.first;
+ Camera *cam= main->camera.first;
/* deformflag is local in modifier now */
for(ob=main->object.first; ob; ob= ob->id.next) {
@@ -5004,7 +5006,21 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
}
}
}
- }
+ }
+
+ while(sce) {
+ while(cam) {
+ /* convert the passepartout scene flag to a camera flag */
+ if(sce->r.scemode & R_PASSEPARTOUT)
+ cam->flag |= CAM_SHOWPASSEPARTOUT;
+
+ /* make sure old cameras have title safe on */
+ if (!(cam->flag & CAM_SHOWTITLESAFE))
+ cam->flag |= CAM_SHOWTITLESAFE;
+ cam= cam->id.next;
+ }
+ sce= sce->id.next;
+ }
}
/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
diff --git a/source/blender/makesdna/DNA_camera_types.h b/source/blender/makesdna/DNA_camera_types.h
index 2041aae3429..cc7ec27f815 100644
--- a/source/blender/makesdna/DNA_camera_types.h
+++ b/source/blender/makesdna/DNA_camera_types.h
@@ -69,8 +69,12 @@ typedef struct Camera {
/* flag */
#define CAM_SHOWLIMITS 1
#define CAM_SHOWMIST 2
+#define CAM_SHOWPASSEPARTOUT 4
+#define CAM_SHOWTITLESAFE 8
+#define CAM_SHOWNAME 16
+
/* yafray: dof sampling switch */
-#define CAM_YF_NO_QMC 4
+#define CAM_YF_NO_QMC 512
#ifdef __cplusplus
diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c
index 5d4f0ad3dde..cc3aea42238 100644
--- a/source/blender/src/buttons_editing.c
+++ b/source/blender/src/buttons_editing.c
@@ -2261,23 +2261,43 @@ static void editing_panel_camera_type(Object *ob, Camera *cam)
block= uiNewBlock(&curarea->uiblocks, "editing_panel_camera_type", UI_EMBOSS, UI_HELV, curarea->win);
if(uiNewPanel(curarea, block, "Camera", "Editing", 320, 0, 318, 204)==0) return;
- if(cam->type==CAM_ORTHO)
- uiDefButF(block, NUM,REDRAWVIEW3D, "Scale:", 470,178,160,20, &cam->ortho_scale, 0.01, 1000.0, 50, 0, "Specify the ortho scaling of the used camera");
- else
- uiDefButF(block, NUM,REDRAWVIEW3D, "Lens:", 470,178,160,20, &cam->lens, 1.0, 250.0, 100, 0, "Specify the lens of the camera");
-
+if(cam->type==CAM_ORTHO) {
+ uiDefButF(block, NUM,REDRAWVIEW3D, "Scale:",
+ 0, 145, 150, 20, &cam->ortho_scale, 0.01, 1000.0, 50, 0, "Specify the ortho scaling of the used camera");
+ } else {
+ uiDefButF(block, NUM,REDRAWVIEW3D, "Lens:",
+ 0, 145, 150, 20, &cam->lens, 1.0, 250.0, 100, 0, "Specify the lens of the camera");
+ }
+
+ uiDefButS(block, TOG, REDRAWVIEW3D, "Orthographic",
+ 0, 120, 150, 20, &cam->type, 0, 0, 0, 0, "Render orthogonally");
+
+ uiDefBut(block, LABEL, 0, "Clipping:", 0, 90, 150, 20, 0, 0.0, 0.0, 0, 0, "");
+
uiBlockBeginAlign(block);
- uiDefButF(block, NUM,REDRAWVIEW3D, "ClipSta:", 470,147,160,20, &cam->clipsta, 0.001*grid, 100.0*grid, 10, 0, "Specify the startvalue of the the field of view");
- uiDefButF(block, NUM,REDRAWVIEW3D, "ClipEnd:", 470,125,160,20, &cam->clipend, 1.0, 5000.0*grid, 100, 0, "Specify the endvalue of the the field of view");
+ uiDefButF(block, NUM,REDRAWVIEW3D, "Start:",
+ 0, 70, 150, 20, &cam->clipsta, 0.001*grid, 100.0*grid, 10, 0, "Specify the startvalue of the the field of view");
+ uiDefButF(block, NUM,REDRAWVIEW3D, "End:",
+ 0, 50, 150, 20, &cam->clipend, 1.0, 5000.0*grid, 100, 0, "Specify the endvalue of the the field of view");
uiBlockEndAlign(block);
+
+ uiDefBut(block, LABEL, 0, "Show:", 160, 155, 150, 20, 0, 0.0, 0.0, 0, 0, "");
- uiDefButF(block, NUM,REDRAWVIEW3D, "DrawSize:", 470,90,160,20, &cam->drawsize, 0.1*grid, 10.0, 10, 0, "Specify the drawsize of the camera");
-
- uiDefButS(block, TOG, REDRAWVIEW3D, "Ortho", 470,29,61,60, &cam->type, 0, 0, 0, 0, "Render orthogonally");
uiBlockBeginAlign(block);
- uiDefButBitS(block, TOG, CAM_SHOWLIMITS, REDRAWVIEW3D, "ShowLimits", 533,59,97,30, &cam->flag, 0, 0, 0, 0, "Draw the field of view");
- uiDefButBitS(block, TOG, CAM_SHOWMIST, REDRAWVIEW3D, "Show Mist", 533,29,97,30, &cam->flag, 0, 0, 0, 0, "Draw a line that indicates the mist area");
+ uiDefButS(block, TOG|BIT|0,REDRAWVIEW3D, "Limits",
+ 160, 135, 150, 20, &cam->flag, 0, 0, 0, 0, "Draw the field of view");
+ uiDefButS(block, TOG|BIT|1,REDRAWVIEW3D, "Mist",
+ 160, 115, 150, 20, &cam->flag, 0, 0, 0, 0, "Draw a line that indicates the mist area");
+ uiDefButS(block, TOG|BIT|2,REDRAWVIEW3D, "Passepartout",
+ 160, 95, 150, 20, &cam->flag, 0, 0, 0, 0, "Draw a darkened passepartout over the off-screen area in camera view");
+ uiDefButS(block, TOG|BIT|3,REDRAWVIEW3D, "Title Safe",
+ 160, 75, 150, 20, &cam->flag, 0, 0, 0, 0, "Draw a the title safe zone in camera view");
+ uiDefButS(block, TOG|BIT|4,REDRAWVIEW3D, "Name",
+ 160, 55, 150, 20, &cam->flag, 0, 0, 0, 0, "Draw the active camera's name in camera view");
uiBlockEndAlign(block);
+
+ uiDefButF(block, NUM,REDRAWVIEW3D, "Size:",
+ 160, 30, 150, 20, &cam->drawsize, 0.1*grid, 10.0, 10, 0, "Specify the drawsize of the camera");
}
/* yafray: extra camera panel to set Depth-of-Field parameters */
diff --git a/source/blender/src/buttons_scene.c b/source/blender/src/buttons_scene.c
index 01628cfeb1d..e9e8d2fb64a 100644
--- a/source/blender/src/buttons_scene.c
+++ b/source/blender/src/buttons_scene.c
@@ -1042,7 +1042,6 @@ static void render_panel_output(void)
uiBlockEndAlign(block);
uiBlockBeginAlign(block);
- uiDefButBitS(block, TOG, R_PASSEPARTOUT, REDRAWVIEW3D, "Passepartout", 72, 30, 122, 20, &G.scene->r.scemode, 0.0, 0.0, 0, 0, "Draws darkened passepartout in camera view");
uiDefButS(block, ROW, B_REDR, "DispWin", 72, 10, 60, 20, &G.displaymode, 0.0, (float)R_DISPLAYWIN, 0, 0, "Sets render output to display in a seperate window");
uiDefButS(block, ROW, B_REDR, "DispView", 134, 10, 60, 20, &G.displaymode, 0.0, (float)R_DISPLAYVIEW, 0, 0, "Sets render output to display in 3D view");
uiBlockEndAlign(block);
diff --git a/source/blender/src/drawobject.c b/source/blender/src/drawobject.c
index 85c6eecbd4d..8933c2d7206 100644
--- a/source/blender/src/drawobject.c
+++ b/source/blender/src/drawobject.c
@@ -715,12 +715,16 @@ void drawcamera(Object *ob)
vec[3][0]= -facx; vec[3][1]= -facy; vec[3][2]= depth;
vec[4][0]= -facx; vec[4][1]= facy; vec[4][2]= depth;
+ /* draw inactive cameras with dashed lines */
+ if (ob != G.vd->camera) setlinestyle(3);
+
glBegin(GL_LINE_LOOP);
glVertex3fv(vec[1]);
glVertex3fv(vec[2]);
glVertex3fv(vec[3]);
glVertex3fv(vec[4]);
glEnd();
+
if(G.vd->persp>=2 && ob==G.vd->camera) return;
@@ -732,6 +736,9 @@ void drawcamera(Object *ob)
glVertex3fv(vec[0]);
glVertex3fv(vec[3]);
glEnd();
+
+ /* make sure it's solid line again */
+ setlinestyle(0);
/* arrow on top */
diff --git a/source/blender/src/drawview.c b/source/blender/src/drawview.c
index 390f8366b88..0902d87cce3 100644
--- a/source/blender/src/drawview.c
+++ b/source/blender/src/drawview.c
@@ -56,6 +56,7 @@
#include "DNA_action_types.h"
#include "DNA_armature_types.h"
+#include "DNA_camera_types.h"
#include "DNA_constraint_types.h"
#include "DNA_curve_types.h"
#include "DNA_group_types.h"
@@ -903,10 +904,15 @@ void view3d_set_1_to_1_viewborder(View3D *v3d)
static void drawviewborder(void)
{
+ extern void gl_round_box(int mode, float minx, float miny, float maxx, float maxy, float rad); // interface_panel.c
float fac, a;
float x1, x2, y1, y2;
float x3, y3, x4, y4;
rcti viewborder;
+ Camera *ca;
+
+ ca = G.scene->camera->data;
+ if (ca==NULL) return;
calc_viewborder(G.vd, &viewborder);
x1= viewborder.xmin;
@@ -915,7 +921,7 @@ static void drawviewborder(void)
y2= viewborder.ymax;
/* passepartout, in color of backdrop minus 50 */
- if(G.scene->r.scemode & R_PASSEPARTOUT) {
+ if (ca->flag & CAM_SHOWPASSEPARTOUT) {
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
glEnable(GL_BLEND);
glColor4ub(0, 0, 0, 50);
@@ -930,14 +936,26 @@ static void drawviewborder(void)
}
glDisable(GL_BLEND);
}
+
/* edge */
- setlinestyle(3);
- cpack(0);
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
- glRectf(x1+1, y1-1, x2+1, y2-1);
- cpack(0xFFFFFF);
- glRectf(x1, y1, x2, y2);
+ setlinestyle(0);
+ BIF_ThemeColor(TH_BACK);
+ glRectf(x1, y1, x2, y2);
+
+ setlinestyle(3);
+ BIF_ThemeColor(TH_WIRE);
+ glRectf(x1, y1, x2, y2);
+
+
+ /* camera name */
+ if (ca->flag & CAM_SHOWNAME) {
+ glRasterPos2f(x1, y1-15);
+
+ BMF_DrawString(G.font, G.scene->camera->id.name+2);
+ }
+
/* border */
if(G.scene->r.mode & R_BORDER) {
@@ -948,29 +966,28 @@ static void drawviewborder(void)
x4= x1+ G.scene->r.border.xmax*(x2-x1);
y4= y1+ G.scene->r.border.ymax*(y2-y1);
- glRectf(x3+1, y3-1, x4+1, y4-1);
-
cpack(0x4040FF);
glRectf(x3, y3, x4, y4);
}
/* safety border */
-
- fac= 0.1;
+ if (ca->flag & CAM_SHOWTITLESAFE) {
+ fac= 0.1;
+
+ a= fac*(x2-x1);
+ x1+= a;
+ x2-= a;
+
+ a= fac*(y2-y1);
+ y1+= a;
+ y2-= a;
+
+ BIF_ThemeColorBlendShade(TH_WIRE, TH_BACK, 0.25, 0);
+
+ uiSetRoundBox(15);
+ gl_round_box(GL_LINE_LOOP, x1, y1, x2, y2, 12.0);
+ }
- a= fac*(x2-x1);
- x1+= a;
- x2-= a;
-
- a= fac*(y2-y1);
- y1+= a;
- y2-= a;
-
- cpack(0);
- glRectf(x1+1, y1-1, x2+1, y2-1);
- cpack(0xFFFFFF);
- glRectf(x1, y1, x2, y2);
-
setlinestyle(0);
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);