Merging r47662 through r47666 from trunk into soc-2011-tomato
authorSergey Sharybin <sergey.vfx@gmail.com>
Sun, 10 Jun 2012 12:15:39 +0000 (12:15 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Sun, 10 Jun 2012 12:15:39 +0000 (12:15 +0000)
source/blender/compositor/nodes/COM_GroupNode.cpp
source/blender/compositor/nodes/COM_SocketProxyNode.cpp
source/blender/compositor/nodes/COM_SocketProxyNode.h
source/blender/editors/space_view3d/drawarmature.c
source/blender/editors/space_view3d/drawobject.c
source/blender/editors/space_view3d/view3d_draw.c
source/blender/editors/space_view3d/view3d_intern.h

index 076d4f1501a89c38b46d0f0497989dca9c85166a..ec06a3acd7e0a6c549460f146ea927db2dbc8a1d 100644 (file)
@@ -45,23 +45,16 @@ void GroupNode::ungroup(ExecutionSystem &system)
                InputSocket * inputSocket = inputsockets[index];
                bNodeSocket *editorInput = inputSocket->getbNodeSocket();
                if (editorInput->groupsock) {
-                       if (inputSocket->isConnected()) {
-                               SocketProxyNode * proxy = new SocketProxyNode(this->getbNode(), editorInput, editorInput->groupsock);
-                               inputSocket->relinkConnections(proxy->getInputSocket(0), index, &system);
-                               ExecutionSystemHelper::addNode(system.getNodes(), proxy);
-                       }
-                       else {
-                               OutputSocketProxyNode * proxy = new OutputSocketProxyNode(this->getbNode(), editorInput, editorInput->groupsock);
-                               inputSocket->relinkConnections(proxy->getInputSocket(0), index, &system);
-                               ExecutionSystemHelper::addNode(system.getNodes(), proxy);
-                       }
+                       SocketProxyNode * proxy = new SocketProxyNode(this->getbNode(), editorInput, editorInput->groupsock);
+                       inputSocket->relinkConnections(proxy->getInputSocket(0), index, &system);
+                       ExecutionSystemHelper::addNode(system.getNodes(), proxy);
                }
        }
 
        for (index = 0 ; index < outputsockets.size();index ++) {
                OutputSocket * outputSocket = outputsockets[index];
                bNodeSocket *editorOutput = outputSocket->getbNodeSocket();
-               if (outputSocket->isConnected() && editorOutput->groupsock) {
+               if (editorOutput->groupsock) {
                        SocketProxyNode * proxy = new SocketProxyNode(this->getbNode(), editorOutput->groupsock, editorOutput);
                        outputSocket->relinkConnections(proxy->getOutputSocket(0));
                        ExecutionSystemHelper::addNode(system.getNodes(), proxy);
index 42dd49bd1da3e09045ebf90943cb1d771ce9f3eb..fbb25afe266107c1de0bb5603f208023c2a3f3b7 100644 (file)
@@ -44,52 +44,50 @@ SocketProxyNode::SocketProxyNode(bNode *editorNode, bNodeSocket *editorInput, bN
 }
 
 void SocketProxyNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
-{
-       OutputSocket * outputsocket = this->getOutputSocket(0);
-       if (outputsocket->isConnected()) {
-               SocketProxyOperation *operation = new SocketProxyOperation();
-               this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0));
-               this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
-               graph->addOperation(operation);
-       }
-}
-
-void OutputSocketProxyNode::convertToOperations(ExecutionSystem *graph, CompositorContext * context)
 {
        OutputSocket * outputsocket = this->getOutputSocket(0);
        InputSocket * inputsocket = this->getInputSocket(0);
        if (outputsocket->isConnected()) {
-               switch (outputsocket->getActualDataType()) {
-               case COM_DT_VALUE:
-               {
-                       SetValueOperation *operation = new SetValueOperation();
-                       bNodeSocketValueFloat *dval = (bNodeSocketValueFloat*)inputsocket->getbNodeSocket()->default_value;
-                       operation->setValue(dval->value);
-                       this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
-                       graph->addOperation(operation);
-                       break;
-               }
-               case COM_DT_COLOR:
-               {
-                       SetColorOperation *operation = new SetColorOperation();
-                       bNodeSocketValueRGBA *dval = (bNodeSocketValueRGBA*)inputsocket->getbNodeSocket()->default_value;
-                       operation->setChannels(dval->value);
-                       this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
-                       graph->addOperation(operation);
-                       break;
-               }
-               case COM_DT_VECTOR:
-               {
-                       SetVectorOperation *operation = new SetVectorOperation();
-                       bNodeSocketValueVector *dval = (bNodeSocketValueVector*)inputsocket->getbNodeSocket()->default_value;
-                       operation->setVector(dval->value);
-                       this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+               if (inputsocket->isConnected()) {
+                       SocketProxyOperation *operation = new SocketProxyOperation();
+                       inputsocket->relinkConnections(operation->getInputSocket(0));
+                       outputsocket->relinkConnections(operation->getOutputSocket(0));
                        graph->addOperation(operation);
-                       break;
                }
-                       /* quiet warnings */
-               case COM_DT_UNKNOWN:
-                       break;
+               else {
+                       /* If input is not connected, add a constant value operation instead */
+                       switch (outputsocket->getActualDataType()) {
+                       case COM_DT_VALUE:
+                       {
+                               SetValueOperation *operation = new SetValueOperation();
+                               bNodeSocketValueFloat *dval = (bNodeSocketValueFloat*)inputsocket->getbNodeSocket()->default_value;
+                               operation->setValue(dval->value);
+                               outputsocket->relinkConnections(operation->getOutputSocket(0));
+                               graph->addOperation(operation);
+                               break;
+                       }
+                       case COM_DT_COLOR:
+                       {
+                               SetColorOperation *operation = new SetColorOperation();
+                               bNodeSocketValueRGBA *dval = (bNodeSocketValueRGBA*)inputsocket->getbNodeSocket()->default_value;
+                               operation->setChannels(dval->value);
+                               outputsocket->relinkConnections(operation->getOutputSocket(0));
+                               graph->addOperation(operation);
+                               break;
+                       }
+                       case COM_DT_VECTOR:
+                       {
+                               SetVectorOperation *operation = new SetVectorOperation();
+                               bNodeSocketValueVector *dval = (bNodeSocketValueVector*)inputsocket->getbNodeSocket()->default_value;
+                               operation->setVector(dval->value);
+                               outputsocket->relinkConnections(operation->getOutputSocket(0));
+                               graph->addOperation(operation);
+                               break;
+                       }
+                               /* quiet warnings */
+                       case COM_DT_UNKNOWN:
+                               break;
+                       }
                }
        }
 }
index 1b5ee699211534a5e11d9b804798faf2edfd64d1..b73ca24a45ec195546fc45622237eac7da79318b 100644 (file)
@@ -37,10 +37,4 @@ public:
        virtual bool isProxyNode() const { return true; }
 };
 
-class OutputSocketProxyNode: public SocketProxyNode {
-public:
-       OutputSocketProxyNode(bNode *editorNode, bNodeSocket *editorInput, bNodeSocket *editorOutput): SocketProxyNode(editorNode, editorInput, editorOutput) {}
-       void convertToOperations(ExecutionSystem *graph, CompositorContext * context);
-};
-
 #endif
index 7edf18136d2592015559e6c3fff5a81fbdffa482..e51f7a312eb7e0b43c463b0362c69dff70ad52f3 100644 (file)
@@ -557,7 +557,7 @@ static void draw_bone_solid_octahedral(void)
 /* *************** Armature drawing, bones ******************* */
 
 
-static void draw_bone_points(int dt, int armflag, unsigned int boneflag, int id)
+static void draw_bone_points(const short dt, int armflag, unsigned int boneflag, int id)
 {
        /*      Draw root point if we are not connected */
        if ((boneflag & BONE_CONNECTED) == 0) {
@@ -862,7 +862,7 @@ static void draw_sphere_bone_wire(float smat[][4], float imat[][4],
 }
 
 /* does wire only for outline selecting */
-static void draw_sphere_bone(int dt, int armflag, int boneflag, short constflag, unsigned int id,
+static void draw_sphere_bone(const short dt, int armflag, int boneflag, short constflag, unsigned int id,
                              bPoseChannel *pchan, EditBone *ebone)
 {
        GLUquadricObj *qobj;
@@ -1100,7 +1100,7 @@ static void draw_line_bone(int armflag, int boneflag, short constflag, unsigned
        glPopMatrix();
 }
 
-static void draw_b_bone_boxes(int dt, bPoseChannel *pchan, float xwidth, float length, float zwidth)
+static void draw_b_bone_boxes(const short dt, bPoseChannel *pchan, float xwidth, float length, float zwidth)
 {
        int segments = 0;
        
@@ -1128,7 +1128,7 @@ static void draw_b_bone_boxes(int dt, bPoseChannel *pchan, float xwidth, float l
        }
 }
 
-static void draw_b_bone(int dt, int armflag, int boneflag, short constflag, unsigned int id,
+static void draw_b_bone(const short dt, int armflag, int boneflag, short constflag, unsigned int id,
                         bPoseChannel *pchan, EditBone *ebone)
 {
        float xwidth, length, zwidth;
@@ -1242,7 +1242,7 @@ static void draw_wire_bone_segments(bPoseChannel *pchan, Mat4 *bbones, float len
        }
 }
 
-static void draw_wire_bone(int dt, int armflag, int boneflag, short constflag, unsigned int id,
+static void draw_wire_bone(const short dt, int armflag, int boneflag, short constflag, unsigned int id,
                            bPoseChannel *pchan, EditBone *ebone)
 {
        Mat4 *bbones = NULL;
@@ -1293,7 +1293,7 @@ static void draw_wire_bone(int dt, int armflag, int boneflag, short constflag, u
        draw_wire_bone_segments(pchan, bbones, length, segments);
 }
 
-static void draw_bone(int dt, int armflag, int boneflag, short constflag, unsigned int id, float length)
+static void draw_bone(const short dt, int armflag, int boneflag, short constflag, unsigned int id, float length)
 {
        
        /* Draw a 3d octahedral bone, we use normalized space based on length,
@@ -1364,7 +1364,7 @@ static void draw_bone(int dt, int armflag, int boneflag, short constflag, unsign
 }
 
 static void draw_custom_bone(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob,
-                             int dt, int armflag, int boneflag, unsigned int id, float length)
+                             const short dt, int armflag, int boneflag, unsigned int id, float length)
 {
        if (ob == NULL) return;
        
@@ -1657,7 +1657,7 @@ static void bone_matrix_translate_y(float mat[][4], float y)
 
 /* assumes object is Armature with pose */
 static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
-                            int dt, const unsigned char ob_wire_col[4],
+                            const short dt, const unsigned char ob_wire_col[4],
                             const short do_const_color, const short is_outline)
 {
        RegionView3D *rv3d = ar->regiondata;
@@ -2082,7 +2082,7 @@ static void get_matrix_editbone(EditBone *eBone, float bmat[][4])
        add_v3_v3(bmat[3], eBone->head);
 }
 
-static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, int dt)
+static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, const short dt)
 {
        RegionView3D *rv3d = ar->regiondata;
        EditBone *eBone;
@@ -2559,7 +2559,7 @@ static void draw_ghost_poses(Scene *scene, View3D *v3d, ARegion *ar, Base *base)
 /* called from drawobject.c, return 1 if nothing was drawn
  * (ob_wire_col == NULL) when drawing ghost */
 int draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
-                  int dt, int flag, const unsigned char ob_wire_col[4],
+                  const short dt, const short dflag, const unsigned char ob_wire_col[4],
                   const short is_outline)
 {
        Object *ob = base->object;
@@ -2613,7 +2613,7 @@ int draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
                                                if (arm->ghostep)
                                                        draw_ghost_poses(scene, v3d, ar, base);
                                        }
-                                       if ((flag & DRAW_SCENESET) == 0) {
+                                       if ((dflag & DRAW_SCENESET) == 0) {
                                                if (ob == OBACT)
                                                        arm->flag |= ARM_POSEMODE;
                                                else if (OBACT && (OBACT->mode & OB_MODE_WEIGHT_PAINT)) {
@@ -2624,7 +2624,7 @@ int draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
                                        }
                                }       
                        }
-                       draw_pose_bones(scene, v3d, ar, base, dt, ob_wire_col, (flag & DRAW_CONSTCOLOR), is_outline);
+                       draw_pose_bones(scene, v3d, ar, base, dt, ob_wire_col, (dflag & DRAW_CONSTCOLOR), is_outline);
                        arm->flag &= ~ARM_POSEMODE; 
                        
                        if (ob->mode & OB_MODE_POSE)
index edb40adfc6797e06b2cf8cd771e2cb29cb6337e4..15473492b9d28c1dab5bd29ce830b8ca135e4827 100644 (file)
@@ -333,7 +333,7 @@ static void view3d_project_short_clip_persmat(ARegion *ar, const float vec[3], s
 
 /* check for glsl drawing */
 
-int draw_glsl_material(Scene *scene, Object *ob, View3D *v3d, int dt)
+int draw_glsl_material(Scene *scene, Object *ob, View3D *v3d, const short dt)
 {
        if (!GPU_glsl_support())
                return 0;
@@ -1190,7 +1190,7 @@ static void draw_transp_spot_volume(Lamp *la, float x, float z)
 }
 
 static void drawlamp(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
-                     int dt, int flag, const unsigned char ob_wire_col[4])
+                     const short dt, const short dflag, const unsigned char ob_wire_col[4])
 {
        Object *ob = base->object;
        const float pixsize = ED_view3d_pixel_size(rv3d, ob->obmat[3]);
@@ -1213,7 +1213,7 @@ static void drawlamp(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
 
        if (drawcone && !v3d->transp) {
                /* in this case we need to draw delayed */
-               add_view3d_after(&v3d->afterdraw_transp, base, flag);
+               ED_view3d_after_add(&v3d->afterdraw_transp, base, dflag);
                return;
        }
        
@@ -1232,7 +1232,7 @@ static void drawlamp(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
        /* lamp center */
        copy_v3_v3(vec, ob->obmat[3]);
 
-       if ((flag & DRAW_CONSTCOLOR) == 0) {
+       if ((dflag & DRAW_CONSTCOLOR) == 0) {
                /* for AA effects */
                curcol[0] = ob_wire_col[0];
                curcol[1] = ob_wire_col[1];
@@ -1243,7 +1243,7 @@ static void drawlamp(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
 
        if (lampsize > 0.0f) {
 
-               if ((flag & DRAW_CONSTCOLOR) == 0) {
+               if ((dflag & DRAW_CONSTCOLOR) == 0) {
                        if (ob->id.us > 1) {
                                if (ob == OBACT || (ob->flag & SELECT)) glColor4ub(0x88, 0xFF, 0xFF, 155);
                                else glColor4ub(0x77, 0xCC, 0xCC, 155);
@@ -1257,7 +1257,7 @@ static void drawlamp(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
                drawcircball(GL_POLYGON, vec, lampsize, imat);
                
                /* restore */
-               if ((flag & DRAW_CONSTCOLOR) == 0) {
+               if ((dflag & DRAW_CONSTCOLOR) == 0) {
                        if (ob->id.us > 1)
                                glColor4ubv(curcol);
                }
@@ -1492,7 +1492,7 @@ static void drawlamp(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
        
        glDisable(GL_BLEND);
        
-       if ((flag & DRAW_CONSTCOLOR) == 0) {
+       if ((dflag & DRAW_CONSTCOLOR) == 0) {
                /* restore for drawing extra stuff */
                glColor3ubv(ob_wire_col);
        }
@@ -1558,8 +1558,8 @@ static void draw_bundle_sphere(void)
 }
 
 static void draw_viewport_object_reconstruction(Scene *scene, Base *base, View3D *v3d,
-                                                MovieClip *clip, MovieTrackingObject *tracking_object, int flag,
-                                                int *global_track_index, int draw_selected)
+                                                MovieClip *clip, MovieTrackingObject *tracking_object,
+                                                const short dflag, int *global_track_index, int draw_selected)
 {
        MovieTracking *tracking = &clip->tracking;
        MovieTrackingTrack *track;
@@ -1602,7 +1602,7 @@ static void draw_viewport_object_reconstruction(Scene *scene, Base *base, View3D
                if ((track->flag & TRACK_HAS_BUNDLE) == 0)
                        continue;
 
-               if (flag & DRAW_PICKING)
+               if (dflag & DRAW_PICKING)
                        glLoadName(base->selcol + (tracknr << 16));
 
                glPushMatrix();
@@ -1668,7 +1668,7 @@ static void draw_viewport_object_reconstruction(Scene *scene, Base *base, View3D
 
                glPopMatrix();
 
-               if ((flag & DRAW_PICKING) == 0 && (v3d->flag2 & V3D_SHOW_BUNDLENAME)) {
+               if ((dflag & DRAW_PICKING) == 0 && (v3d->flag2 & V3D_SHOW_BUNDLENAME)) {
                        float pos[3];
                        unsigned char tcol[4];
 
@@ -1682,7 +1682,7 @@ static void draw_viewport_object_reconstruction(Scene *scene, Base *base, View3D
                tracknr++;
        }
 
-       if ((flag & DRAW_PICKING) == 0) {
+       if ((dflag & DRAW_PICKING) == 0) {
                if ((v3d->flag2 & V3D_SHOW_CAMERAPATH) && (tracking_object->flag & TRACKING_OBJECT_CAMERA)) {
                        MovieTrackingReconstruction *reconstruction;
                        reconstruction = BKE_tracking_object_reconstruction(tracking, tracking_object);
@@ -1713,7 +1713,7 @@ static void draw_viewport_object_reconstruction(Scene *scene, Base *base, View3D
 }
 
 static void draw_viewport_reconstruction(Scene *scene, Base *base, View3D *v3d, MovieClip *clip,
-                                         int flag, const unsigned char ob_wire_col[4],
+                                         const short dflag, const unsigned char ob_wire_col[4],
                                          int draw_selected)
 {
        MovieTracking *tracking = &clip->tracking;
@@ -1734,7 +1734,7 @@ static void draw_viewport_reconstruction(Scene *scene, Base *base, View3D *v3d,
        tracking_object = tracking->objects.first;
        while (tracking_object) {
                draw_viewport_object_reconstruction(scene, base, v3d, clip, tracking_object,
-                                                   flag, &global_track_index, draw_selected);
+                                                   dflag, &global_track_index, draw_selected);
 
                tracking_object = tracking_object->next;
        }
@@ -1744,17 +1744,17 @@ static void draw_viewport_reconstruction(Scene *scene, Base *base, View3D *v3d,
        glDisable(GL_COLOR_MATERIAL);
        glDisable(GL_LIGHTING);
 
-       if ((flag & DRAW_CONSTCOLOR) == 0) {
+       if ((dflag & DRAW_CONSTCOLOR) == 0) {
                glColor3ubv(ob_wire_col);
        }
 
-       if (flag & DRAW_PICKING)
+       if (dflag & DRAW_PICKING)
                glLoadName(base->selcol);
 }
 
 /* flag similar to draw_object() */
 static void drawcamera(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
-                       int flag, const unsigned char ob_wire_col[4])
+                       const short dflag, const unsigned char ob_wire_col[4])
 {
        /* a standing up pyramid with (0,0,0) as top */
        Camera *cam;
@@ -1768,13 +1768,13 @@ static void drawcamera(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base
 
        /* draw data for movie clip set as active for scene */
        if (clip) {
-               draw_viewport_reconstruction(scene, base, v3d, clip, flag, ob_wire_col, FALSE);
-               draw_viewport_reconstruction(scene, base, v3d, clip, flag, ob_wire_col, TRUE);
+               draw_viewport_reconstruction(scene, base, v3d, clip, dflag, ob_wire_col, FALSE);
+               draw_viewport_reconstruction(scene, base, v3d, clip, dflag, ob_wire_col, TRUE);
        }
 
 #ifdef VIEW3D_CAMERA_BORDER_HACK
        if (is_view && !(G.f & G_PICKSEL)) {
-               if ((flag & DRAW_CONSTCOLOR) == 0) {
+               if ((dflag & DRAW_CONSTCOLOR) == 0) {
                        view3d_camera_border_hack_col[0] = ob_wire_col[0];
                        view3d_camera_border_hack_col[1] = ob_wire_col[1];
                        view3d_camera_border_hack_col[2] = ob_wire_col[2];
@@ -1851,7 +1851,7 @@ static void drawcamera(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base
                glEnd();
        }
 
-       if (flag == 0) {
+       if (dflag == 0) {
                if (cam->flag & (CAM_SHOWLIMITS + CAM_SHOWMIST)) {
                        float nobmat[4][4];
                        World *wrld;
@@ -3146,7 +3146,7 @@ static DMDrawOption draw_em_fancy__setGLSLFaceOpts(void *userData, int index)
 }
 
 static void draw_em_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d,
-                          Object *ob, BMEditMesh *em, DerivedMesh *cageDM, DerivedMesh *finalDM, int dt)
+                          Object *ob, BMEditMesh *em, DerivedMesh *cageDM, DerivedMesh *finalDM, const short dt)
 
 {
        Mesh *me = ob->data;
@@ -3353,7 +3353,8 @@ static void draw_mesh_object_outline(View3D *v3d, Object *ob, DerivedMesh *dm)
        }
 }
 
-static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D *rv3d, Base *base, int dt, int flag)
+static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D *rv3d, Base *base,
+                            const short dt, const short dflag)
 {
        Object *ob = base->object;
        Mesh *me = ob->data;
@@ -3439,7 +3440,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
        else if (dt == OB_SOLID) {
                if (draw_flags & DRAW_MODIFIERS_PREVIEW) {
                        /* for object selection draws no shade */
-                       if (flag & (DRAW_PICKING | DRAW_CONSTCOLOR)) {
+                       if (dflag & (DRAW_PICKING | DRAW_CONSTCOLOR)) {
                                dm->drawFacesSolid(dm, NULL, 0, GPU_enable_material);
                        }
                        else {
@@ -3541,7 +3542,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
                                UI_ThemeColor(TH_GROUP_ACTIVE);
                        else if (ob->flag & OB_FROMGROUP)
                                UI_ThemeColorShade(TH_GROUP_ACTIVE, -16);
-                       else if (flag != DRAW_CONSTCOLOR)
+                       else if (dflag != DRAW_CONSTCOLOR)
                                UI_ThemeColor(is_obact ? TH_ACTIVE : TH_SELECT);
                        else
                                glColor3ub(80, 80, 80);
@@ -3550,7 +3551,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
                        if (ob->flag & OB_FROMGROUP)
                                UI_ThemeColor(TH_GROUP);
                        else {
-                               if (ob->dtx & OB_DRAWWIRE && flag == DRAW_CONSTCOLOR)
+                               if (ob->dtx & OB_DRAWWIRE && dflag == DRAW_CONSTCOLOR)
                                        glColor3ub(80, 80, 80);
                                else
                                        UI_ThemeColor(TH_WIRE);
@@ -3607,7 +3608,8 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
 }
 
 /* returns 1 if nothing was drawn, for detecting to draw an object center */
-static int draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D *rv3d, Base *base, int dt, int flag)
+static int draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D *rv3d, Base *base,
+                            const short dt, const short dflag)
 {
        Object *ob = base->object;
        Object *obedit = scene->obedit;
@@ -3671,7 +3673,7 @@ static int draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
                                                           (check_alpha) ? &do_alpha_after : NULL);
                        }
 
-                       draw_mesh_fancy(scene, ar, v3d, rv3d, base, dt, flag);
+                       draw_mesh_fancy(scene, ar, v3d, rv3d, base, dt, dflag);
 
                        GPU_end_object_materials();
                        
@@ -3679,20 +3681,20 @@ static int draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
                }
        }
        
-       if ((flag & DRAW_PICKING) == 0 && (base->flag & OB_FROMDUPLI) == 0) {
+       if ((dflag & DRAW_PICKING) == 0 && (base->flag & OB_FROMDUPLI) == 0) {
                /* GPU_begin_object_materials checked if this is needed */
                if (do_alpha_after) {
                        if (ob->dtx & OB_DRAWXRAY) {
-                               add_view3d_after(&v3d->afterdraw_xraytransp, base, flag);
+                               ED_view3d_after_add(&v3d->afterdraw_xraytransp, base, dflag);
                        }
                        else {
-                               add_view3d_after(&v3d->afterdraw_transp, base, flag);
+                               ED_view3d_after_add(&v3d->afterdraw_transp, base, dflag);
                        }
                }
                else if (ob->dtx & OB_DRAWXRAY && ob->dtx & OB_DRAWTRANSP) {
                        /* special case xray+transp when alpha is 1.0, without this the object vanishes */
                        if (v3d->xray == 0 && v3d->transp == 0) {
-                               add_view3d_after(&v3d->afterdraw_xray, base, flag);
+                               ED_view3d_after_add(&v3d->afterdraw_xray, base, dflag);
                        }
                }
        }
@@ -3925,7 +3927,7 @@ static void drawCurveDMWired(Object *ob)
 }
 
 /* return 1 when nothing was drawn */
-static int drawCurveDerivedMesh(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base, int dt)
+static int drawCurveDerivedMesh(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base, const short dt)
 {
        Object *ob = base->object;
        DerivedMesh *dm = ob->derivedFinal;
@@ -3958,7 +3960,7 @@ static int drawCurveDerivedMesh(Scene *scene, View3D *v3d, RegionView3D *rv3d, B
 
 /* returns 1 when nothing was drawn */
 static int drawDispList(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
-                        int dt, const unsigned char ob_wire_col[4])
+                        const short dt, const unsigned char ob_wire_col[4])
 {
        Object *ob = base->object;
        ListBase *lb = NULL;
@@ -5585,7 +5587,7 @@ static void draw_editnurb(Object *ob, Nurb *nurb, int sel)
 }
 
 static void drawnurb(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base, Nurb *nurb,
-                     int dt, const unsigned char ob_wire_col[4])
+                     const short dt, const unsigned char ob_wire_col[4])
 {
        ToolSettings *ts = scene->toolsettings;
        Object *ob = base->object;
@@ -5913,7 +5915,7 @@ static void drawcone(const float vec[3], float radius, float height, float tmat[
 }
 /* return 1 if nothing was drawn */
 static int drawmball(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
-                     int dt, const unsigned char ob_wire_col[4])
+                     const short dt, const unsigned char ob_wire_col[4])
 {
        Object *ob = base->object;
        MetaBall *mb;
@@ -6547,7 +6549,7 @@ static void draw_object_wire_color(Scene *scene, Base *base, unsigned char r_ob_
 }
 
 /* flag can be DRAW_PICKING    and/or DRAW_CONSTCOLOR, DRAW_SCENESET */
-void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
+void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short dflag)
 {
        static int warning_recursive = 0;
        ModifierData *md = NULL;
@@ -6581,12 +6583,12 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
                return;
 
        /* xray delay? */
-       if ((flag & DRAW_PICKING) == 0 && (base->flag & OB_FROMDUPLI) == 0) {
+       if ((dflag & DRAW_PICKING) == 0 && (base->flag & OB_FROMDUPLI) == 0) {
                /* don't do xray in particle mode, need the z-buffer */
                if (!(ob->mode & OB_MODE_PARTICLE_EDIT)) {
                        /* xray and transp are set when it is drawing the 2nd/3rd pass */
                        if (!v3d->xray && !v3d->transp && (ob->dtx & OB_DRAWXRAY) && !(ob->dtx & OB_DRAWTRANSP)) {
-                               add_view3d_after(&v3d->afterdraw_xray, base, flag);
+                               ED_view3d_after_add(&v3d->afterdraw_xray, base, dflag);
                                return;
                        }
                }
@@ -6614,7 +6616,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
        ED_view3d_init_mats_rv3d_gl(ob, rv3d);
 
        /* which wire color */
-       if ((flag & DRAW_CONSTCOLOR) == 0) {
+       if ((dflag & DRAW_CONSTCOLOR) == 0) {
 
                project_short(ar, ob->obmat[3], &base->sx);
 
@@ -6679,8 +6681,8 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
        
        /* draw outline for selected objects, mesh does itself */
        if ((v3d->flag & V3D_SELECT_OUTLINE) && ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) && ob->type != OB_MESH) {
-               if (dt > OB_WIRE && (ob->mode & OB_MODE_EDIT) == 0 && (flag & DRAW_SCENESET) == 0) {
-                       if (!(ob->dtx & OB_DRAWWIRE) && (ob->flag & SELECT) && !(flag & DRAW_PICKING)) {
+               if (dt > OB_WIRE && (ob->mode & OB_MODE_EDIT) == 0 && (dflag & DRAW_SCENESET) == 0) {
+                       if (!(ob->dtx & OB_DRAWWIRE) && (ob->flag & SELECT) && !(dflag & DRAW_PICKING)) {
                                
                                drawObjectSelect(scene, v3d, ar, base, ob_wire_col);
                        }
@@ -6689,8 +6691,8 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
 
        switch (ob->type) {
                case OB_MESH:
-                       empty_object = draw_mesh_object(scene, ar, v3d, rv3d, base, dt, flag);
-                       if (flag != DRAW_CONSTCOLOR) dtx &= ~OB_DRAWWIRE;  // mesh draws wire itself
+                       empty_object = draw_mesh_object(scene, ar, v3d, rv3d, base, dt, dflag);
+                       if (dflag != DRAW_CONSTCOLOR) dtx &= ~OB_DRAWWIRE;  // mesh draws wire itself
 
                        break;
                case OB_FONT:
@@ -6831,7 +6833,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
                        break;
                case OB_LAMP:
                        if ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) {
-                               drawlamp(scene, v3d, rv3d, base, dt, flag, ob_wire_col);
+                               drawlamp(scene, v3d, rv3d, base, dt, dflag, ob_wire_col);
                                if (dtx || (base->flag & SELECT)) glMultMatrixf(ob->obmat);
                        }
                        break;
@@ -6839,12 +6841,12 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
                        if ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0 ||
                            (rv3d->persp == RV3D_CAMOB && v3d->camera == ob)) /* special exception for active camera */
                        {
-                               drawcamera(scene, v3d, rv3d, base, flag, ob_wire_col);
+                               drawcamera(scene, v3d, rv3d, base, dflag, ob_wire_col);
                                break;
                        }
                case OB_SPEAKER:
                        if ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0)
-                               drawspeaker(scene, v3d, rv3d, ob, flag);
+                               drawspeaker(scene, v3d, rv3d, ob, dflag);
                        break;
                case OB_LATTICE:
                        if ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) {
@@ -6862,7 +6864,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
                                else {
                                        if (dt > OB_WIRE)
                                                GPU_enable_material(0, NULL);  /* we use default material */
-                                       empty_object = draw_armature(scene, v3d, ar, base, dt, flag, ob_wire_col, FALSE);
+                                       empty_object = draw_armature(scene, v3d, ar, base, dt, dflag, ob_wire_col, FALSE);
                                        if (dt > OB_WIRE)
                                                GPU_disable_material();
                                }
@@ -6876,7 +6878,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
 
        if ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) {
 
-               if (ob->soft /*&& flag & OB_SBMOTION*/) {
+               if (ob->soft /*&& dflag & OB_SBMOTION*/) {
                        float mrt[3][3], msc[3][3], mtr[3][3];
                        SoftBody *sb = NULL;
                        float tipw = 0.5f, tiph = 0.5f, drawsize = 4.0f;
@@ -6901,7 +6903,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
        /* code for new particle system */
        if ((warning_recursive == 0) &&
            (ob->particlesystem.first) &&
-           (flag & DRAW_PICKING) == 0 &&
+           (dflag & DRAW_PICKING) == 0 &&
            (ob != scene->obedit)
            )
        {
@@ -6935,7 +6937,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
 
        /* draw edit particles last so that they can draw over child particles */
        if ( (warning_recursive == 0) &&
-            (flag & DRAW_PICKING) == 0 &&
+            (dflag & DRAW_PICKING) == 0 &&
             (!scene->obedit))
        {
 
@@ -7093,7 +7095,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
                        if (dtx & OB_DRAWNAME) {
                                /* patch for several 3d cards (IBM mostly) that crash on GL_SELECT with text drawing */
                                /* but, we also don't draw names for sets or duplicators */
-                               if (flag == 0) {
+                               if (dflag == 0) {
                                        const float zero[3] = {0, 0, 0};
                                        view3d_cached_text_draw_add(zero, ob->id.name + 2, 10, 0, ob_wire_col);
                                }
@@ -7151,13 +7153,13 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
                        do_draw_center = DESELECT;
 
                if (do_draw_center != -1) {
-                       if (flag & DRAW_PICKING) {
+                       if (dflag & DRAW_PICKING) {
                                /* draw a single point for opengl selection */
                                glBegin(GL_POINTS);
                                glVertex3fv(ob->obmat[3]);
                                glEnd();
                        }
-                       else if ((flag & DRAW_CONSTCOLOR) == 0) {
+                       else if ((dflag & DRAW_CONSTCOLOR) == 0) {
                                /* we don't draw centers for duplicators and sets */
                                if (U.obcenter_dia > 0) {
                                        /* check > 0 otherwise grease pencil can draw into the circle select which is annoying. */
@@ -7168,7 +7170,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
        }
 
        /* not for sets, duplicators or picking */
-       if (flag == 0 && (v3d->flag & V3D_HIDE_HELPLINES) == 0 && (v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) {
+       if (dflag == 0 && (v3d->flag & V3D_HIDE_HELPLINES) == 0 && (v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) {
                ListBase *list;
                
                /* draw hook center and offset line */
@@ -7510,7 +7512,7 @@ void draw_object_backbufsel(Scene *scene, View3D *v3d, RegionView3D *rv3d, Objec
 
 /* helper function for drawing object instances - meshes */
 static void draw_object_mesh_instance(Scene *scene, View3D *v3d, RegionView3D *rv3d, 
-                                      Object *ob, int dt, int outline)
+                                      Object *ob, const short dt, int outline)
 {
        Mesh *me = ob->data;
        DerivedMesh *dm = NULL, *edm = NULL;
@@ -7558,7 +7560,7 @@ static void draw_object_mesh_instance(Scene *scene, View3D *v3d, RegionView3D *r
        if (dm) dm->release(dm);
 }
 
-void draw_object_instance(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, int dt, int outline)
+void draw_object_instance(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, const short dt, int outline)
 {
        if (ob == NULL)
                return;
index a36c14151e61179f1300fc2901784b0077eee679..6d9507ebff18568d7447974cc2e831a69db7c933 100644 (file)
@@ -1728,17 +1728,17 @@ static void view3d_draw_bgpic_test(Scene *scene, ARegion *ar, View3D *v3d,
 typedef struct View3DAfter {
        struct View3DAfter *next, *prev;
        struct Base *base;
-       int flag;
+       short dflag;
 } View3DAfter;
 
 /* temp storage of Objects that need to be drawn as last */
-void add_view3d_after(ListBase *lb, Base *base, int flag)
+void ED_view3d_after_add(ListBase *lb, Base *base, const short dflag)
 {
        View3DAfter *v3da = MEM_callocN(sizeof(View3DAfter), "View 3d after");
        BLI_assert((base->flag & OB_FROMDUPLI) == 0);
        BLI_addtail(lb, v3da);
        v3da->base = base;
-       v3da->flag = flag;
+       v3da->dflag = dflag;
 }
 
 /* disables write in zbuffer and draws it over */
@@ -1751,7 +1751,7 @@ static void view3d_draw_transp(Scene *scene, ARegion *ar, View3D *v3d)
        
        for (v3da = v3d->afterdraw_transp.first; v3da; v3da = next) {
                next = v3da->next;
-               draw_object(scene, ar, v3d, v3da->base, v3da->flag);
+               draw_object(scene, ar, v3d, v3da->base, v3da->dflag);
                BLI_remlink(&v3d->afterdraw_transp, v3da);
                MEM_freeN(v3da);
        }
@@ -1772,7 +1772,7 @@ static void view3d_draw_xray(Scene *scene, ARegion *ar, View3D *v3d, int clear)
        v3d->xray = TRUE;
        for (v3da = v3d->afterdraw_xray.first; v3da; v3da = next) {
                next = v3da->next;
-               draw_object(scene, ar, v3d, v3da->base, v3da->flag);
+               draw_object(scene, ar, v3d, v3da->base, v3da->dflag);
                BLI_remlink(&v3d->afterdraw_xray, v3da);
                MEM_freeN(v3da);
        }
@@ -1793,7 +1793,7 @@ static void view3d_draw_xraytransp(Scene *scene, ARegion *ar, View3D *v3d, int c
        
        for (v3da = v3d->afterdraw_xraytransp.first; v3da; v3da = next) {
                next = v3da->next;
-               draw_object(scene, ar, v3d, v3da->base, v3da->flag);
+               draw_object(scene, ar, v3d, v3da->base, v3da->dflag);
                BLI_remlink(&v3d->afterdraw_xraytransp, v3da);
                MEM_freeN(v3da);
        }
index de259efdf59f87f863f97db99e0175b04c458a2a..3c6a0dd4b9f7b51dd2c7d7944c18d8348de1d26b 100644 (file)
@@ -53,13 +53,17 @@ struct wmWindowManager;
 #define BL_NEAR_CLIP 0.001
 
 /* drawing flags: */
-#define DRAW_PICKING    1
-#define DRAW_CONSTCOLOR 2
-#define DRAW_SCENESET   4
+enum {
+       DRAW_PICKING     = (1 << 0),
+       DRAW_CONSTCOLOR  = (1 << 1),
+       DRAW_SCENESET    = (1 << 2)
+};
 
 /* draw_mesh_fancy/draw_mesh_textured draw_flags */
-#define DRAW_MODIFIERS_PREVIEW 1
-#define DRAW_FACE_SELECT 2
+enum {
+       DRAW_MODIFIERS_PREVIEW  = (1 << 0),
+       DRAW_FACE_SELECT        = (1 << 1)
+};
 
 /* view3d_header.c */
 void VIEW3D_OT_layers(struct wmOperatorType *ot);
@@ -112,24 +116,27 @@ void draw_motion_paths_cleanup(View3D *v3d);
 
 
 /* drawobject.c */
-void draw_object(Scene *scene, struct ARegion *ar, View3D *v3d, Base *base, int flag);
-int draw_glsl_material(Scene *scene, struct Object *ob, View3D *v3d, int dt);
-void draw_object_instance(Scene *scene, View3D *v3d, RegionView3D *rv3d, struct Object *ob, int dt, int outline);
+void draw_object(Scene *scene, struct ARegion *ar, View3D *v3d, Base *base, const short dflag);
+int draw_glsl_material(Scene *scene, struct Object *ob, View3D *v3d, const short dt);
+void draw_object_instance(Scene *scene, View3D *v3d, RegionView3D *rv3d, struct Object *ob, const short dt, int outline);
 void draw_object_backbufsel(Scene *scene, View3D *v3d, RegionView3D *rv3d, struct Object *ob);
 void drawaxes(float size, char drawtype);
 
 void view3d_cached_text_draw_begin(void);
 void view3d_cached_text_draw_add(const float co[3], const char *str, short xoffs, short flag, const unsigned char col[4]);
 void view3d_cached_text_draw_end(View3D * v3d, ARegion * ar, int depth_write, float mat[][4]);
-#define V3D_CACHE_TEXT_ZBUF         (1 << 0)
-#define V3D_CACHE_TEXT_WORLDSPACE   (1 << 1)
-#define V3D_CACHE_TEXT_ASCII        (1 << 2)
-#define V3D_CACHE_TEXT_GLOBALSPACE  (1 << 3)
-#define V3D_CACHE_TEXT_LOCALCLIP    (1 << 4)
+
+enum {
+       V3D_CACHE_TEXT_ZBUF         = (1 << 0),
+       V3D_CACHE_TEXT_WORLDSPACE   = (1 << 1),
+       V3D_CACHE_TEXT_ASCII        = (1 << 2),
+       V3D_CACHE_TEXT_GLOBALSPACE  = (1 << 3),
+       V3D_CACHE_TEXT_LOCALCLIP    = (1 << 4)
+};
 
 /* drawarmature.c */
 int draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
-                  int dt, int flag, const unsigned char ob_wire_col[4],
+                  const short dt, const short dflag, const unsigned char ob_wire_col[4],
                   const short is_outline);
 
 /* drawmesh.c */
@@ -142,7 +149,7 @@ void draw_mesh_paint(View3D *v3d, RegionView3D *rv3d,
 void view3d_main_area_draw(const struct bContext *C, struct ARegion *ar);
 void draw_depth(Scene *scene, struct ARegion *ar, View3D *v3d, int (*func)(void *));
 void draw_depth_gpencil(Scene *scene, ARegion *ar, View3D *v3d);
-void add_view3d_after(ListBase *lb, Base *base, int flag);
+void ED_view3d_after_add(ListBase *lb, Base *base, const short dflag);
 
 void circf(float x, float y, float rad);
 void circ(float x, float y, float rad);