2.5: multiple small fixes
authorBrecht Van Lommel <brechtvanlommel@pandora.be>
Fri, 23 Jan 2009 20:36:47 +0000 (20:36 +0000)
committerBrecht Van Lommel <brechtvanlommel@pandora.be>
Fri, 23 Jan 2009 20:36:47 +0000 (20:36 +0000)
- wm draw method is now initialized correct when reading older
  files, but the SDNA bug causing the problem is still unsolved.
  is due to // char pad[8]; not being recognized as commented.
- triple buffer proxy texture test follows spec better now,
  was disabling triple buffer unnecessarily on some drivers.
- some cmake compile fixes related to sequencer pthread usage
  and removed bad level calls lib for player.
- show outliner header buttons in oops mode as well until that
  can be switched in the UI.
- fix region data free issue for tooltips
- warning fixes

17 files changed:
source/blender/blenkernel/BKE_mesh.h
source/blender/blenkernel/CMakeLists.txt
source/blender/blenkernel/intern/exotic.c
source/blender/blenkernel/intern/idprop.c
source/blender/blenkernel/intern/multires.c
source/blender/blenkernel/intern/screen.c
source/blender/blenlib/intern/arithb.c
source/blender/blenlib/intern/graph.c
source/blender/editors/interface/interface_regions.c
source/blender/editors/space_outliner/outliner_header.c
source/blender/editors/uvedit/uvedit_ops.c
source/blender/gpu/GPU_draw.h
source/blender/makesdna/DNA_userdef_types.h
source/blender/makesrna/intern/rna_constraint.c
source/blender/python/intern/bpy_rna.c
source/blender/windowmanager/intern/wm_draw.c
source/blender/windowmanager/intern/wm_files.c

index f455b094f5df972b6a751bdd2813cc24e099325e..042b3b3046c7d24026275bbf54da1019c5bf7091 100644 (file)
@@ -39,6 +39,7 @@ struct ListBase;
 struct MDeformVert;
 struct Mesh;
 struct MFace;
+struct MEdge;
 struct MVert;
 struct MCol;
 struct Object;
index 3948a2bf2afd388955d2d961f3cfb01305ed4f06..46153b928aa75cc499d4ef50c89858d645d1da44 100644 (file)
@@ -56,18 +56,12 @@ IF(WITH_FFMPEG)
   ADD_DEFINITIONS(-DWITH_FFMPEG)
 ENDIF(WITH_FFMPEG)
 
-IF(WITH_PLAYER)
-  SUBDIRS(bad_level_call_stubs)
-ENDIF(WITH_PLAYER)
-
 IF(WITH_PYTHON)
   SET(INC ${INC} ../python ${PYTHON_INC})
 ELSE(WITH_PYTHON)
   ADD_DEFINITIONS(-DDISABLE_PYTHON)
 ENDIF(WITH_PYTHON)
 
-BLENDERLIB(bf_blenkernel "${SRC}" "${INC}")
-
 IF(WITH_INTERNATIONAL)
    ADD_DEFINITIONS(-DWITH_FREETYPE2)
 ENDIF(WITH_INTERNATIONAL)
@@ -75,3 +69,10 @@ ENDIF(WITH_INTERNATIONAL)
 IF(NOT WITH_ELBEEM)
   ADD_DEFINITIONS(-DDISABLE_ELBEEM)
 ENDIF(NOT WITH_ELBEEM)
+
+IF(WIN32)
+  SET(INC ${INC} ${PTHREADS_INC})
+ENDIF(WIN32)
+
+BLENDERLIB(bf_blenkernel "${SRC}" "${INC}")
+
index 9c5d67660baef0e79d116b300889d249e6df451a..249d3db942328353abab3784b6d096b2a4b4de96 100644 (file)
@@ -2387,7 +2387,7 @@ void write_stl(Scene *scene, char *str)
 
 static void write_videoscape_mesh(Scene *scene, Object *ob, char *str)
 {
-       Mesh *me;
+       Mesh *me= ob->data;
        EditMesh *em = me->edit_mesh;
        Material *ma;
        MFace *mface;
index 4cd282e094eafc05380661d730ea1874c7aaf17f..c2474e847ae79fee3c153e81268953b643642ddd 100644 (file)
@@ -215,7 +215,7 @@ void IDP_ResizeArray(IDProperty *prop, int newlen)
        /*first check if the array buffer size has room*/
        /*if newlen is 200 chars less then totallen, reallocate anyway*/
        if (newlen <= prop->totallen && prop->totallen - newlen < 200) {
-               idp_resize_group_array(prop, newlen, newarr);
+               idp_resize_group_array(prop, newlen, prop->data.pointer);
                prop->len = newlen;
                return;
        }
index ec4b8eb6d033bcca6a5283fcb8bc7d6a19a14ffa..a09a428dc067fbee08e11766679011a905d0427f 100644 (file)
@@ -428,7 +428,7 @@ void multiresModifier_del_levels(struct MultiresModifierData *mmd, struct Object
 void multiresModifier_subdivide(MultiresModifierData *mmd, Object *ob, int distance, int updateblock, int simple)
 {
        DerivedMesh *final = NULL;
-       int totsubvert, totsubface, totsubedge;
+       int totsubvert = 0, totsubface = 0, totsubedge = 0;
        Mesh *me = get_mesh(ob);
        MDisps *mdisps;
        int i;
index 96dddb908d2ba7cde11da422a00d07eb8d51eb0f..ce5225d50b9d2ed76820273735a19569c825d401 100644 (file)
@@ -223,6 +223,9 @@ void BKE_area_region_free(SpaceType *st, ARegion *ar)
                if(art && art->free)
                        art->free(ar);
        }
+       else if(ar->type && ar->type->free)
+               ar->type->free(ar);
+
        if(ar) {
                if(ar->regiondata)
                        printf("regiondata free error\n");
index a21252d9aa8e53e3ec0c3d37953355502728000d..a9e1e80a403b6d4fc95ae87812b6d8629bb6831c 100644 (file)
@@ -34,6 +34,7 @@
 
 /* ************************ FUNKTIES **************************** */
 
+#include <stdlib.h>
 #include <math.h>
 #include <sys/types.h>
 #include <string.h> 
 #define SWAP(type, a, b)       { type sw_ap; sw_ap=(a); (a)=(b); (b)=sw_ap; }
 #define CLAMP(a, b, c)         if((a)<(b)) (a)=(b); else if((a)>(c)) (a)=(c)
 
-
-#if defined(WIN32) || defined(__APPLE__)
-#include <stdlib.h>
+#ifndef M_PI
 #define M_PI 3.14159265358979323846
-#define M_SQRT2 1.41421356237309504880   
+#endif
 
-#endif /* defined(WIN32) || defined(__APPLE__) */
+#ifndef M_SQRT2
+#define M_SQRT2 1.41421356237309504880   
+#endif
 
 
 float saacos(float fac)
index 03a565ef0bfffe1eb7b373dd9d4c95ba4dd9fb21..de9c8860c6a4648cfd50ce4f77083e7af6f35641 100644 (file)
@@ -279,7 +279,7 @@ void BLI_removeDoubleNodes(BGraph *graph, float limit)
 BNode * BLI_FindNodeByPosition(BGraph *graph, float *p, float limit)
 {
        BNode *closest_node = NULL, *node;
-       float min_distance;
+       float min_distance = 0.0f;
        
        for(node = graph->nodes.first; node; node = node->next)
        {
index de4cf47696758fddaa536004d4488b1f8804900d..f100a0f8965bfd68042556862e0541f160bd5b5c 100644 (file)
@@ -238,7 +238,6 @@ ARegion *ui_add_temporary_region(bScreen *sc)
 
 void ui_remove_temporary_region(bContext *C, bScreen *sc, ARegion *ar)
 {
-       ar->regiondata= NULL;
        wm_draw_region_clear(CTX_wm_window(C), ar);
        ED_region_exit(C, ar);
        BKE_area_region_free(NULL, ar);         /* NULL: no spacetype */
index 3c494dfaac4f64763f1ab23a537983d8122a8eaf..f0cf5480e71e8ea967785c1b77bfdac814a1959d 100644 (file)
@@ -199,7 +199,7 @@ void outliner_header_buttons(const bContext *C, ARegion *ar)
                uiBlockSetEmboss(block, UI_EMBOSS);
        }
        
-       if(soutliner->type==SO_OUTLINER) {
+       if(1) { // XXX soutliner->type==SO_OUTLINER) {
                if(G.main->library.first) 
                        uiDefButS(block, MENU, B_REDR, "Outliner Display%t|Libraries %x7|All Scenes %x0|Current Scene %x1|Visible Layers %x2|Groups %x6|Same Types %x5|Selected %x3|Active %x4|Sequence %x10|Datablocks %x11|User Preferences %x12",     xco, yco, 120, 20,  &soutliner->outlinevis, 0, 0, 0, 0, "");
                else
index 2e5f64ad6c61dd4026ad4bfcaa5c1a73d6460812..bdaa64072959071d7e74bdfbccfd68e416b53305 100644 (file)
@@ -1499,7 +1499,7 @@ static int mouse_select(bContext *C, float co[2], int extend, int loop)
        EditFace *efa;
        MTFace *tf;
        NearestHit hit;
-       int a, i, select, selectmode, sticky, sync, hitv[4], nvert;
+       int a, i, select = 1, selectmode, sticky, sync, hitv[4], nvert;
        int flush = 0; /* 0 == dont flush, 1 == sel, -1 == desel;  only use when selection sync is enabled */
        float limit[2], *hituv[4], penalty[2];
        
index 307c116d59675a76e96a17ebcf478da25359d1c9..e326be9d776e9270245b13c8e92a7c4ad56e56e1 100644 (file)
@@ -42,6 +42,7 @@ struct MTFace;
 struct Object;
 struct Scene;
 struct View3D;
+struct RegionView3D;
 
 /* OpenGL drawing functions related to shading. These are also
  * shared with the game engine, where there were previously
index f2cc1f8017c3ff08b465d0cf777b0bd02fd5145c..8de033d11e66e5ad457a19a14e5e3d9794d68e3a 100644 (file)
@@ -195,7 +195,8 @@ typedef struct UserDef {
        short tb_leftmouse, tb_rightmouse;
        struct SolidLight light[3];
        short tw_hotspot, tw_flag, tw_handlesize, tw_size;
-       int textimeout, texcollectrate;
+       short textimeout,texcollectrate;
+       short wmdrawmethod, wmpad;
        int memcachelimit;
        int prefetchframes;
        short frameserverport;
@@ -216,8 +217,6 @@ typedef struct UserDef {
        short autokey_mode;             /* autokeying mode */
        short autokey_flag;             /* flags for autokeying */
 
-       int wmdrawmethod, pad;
-       
        struct ColorBand coba_weight;   /* from texture.h */
 } UserDef;
 
index aece91d1c3291b7a0fe6ee07085396a8d4bfd0d3..5e1f80d0a3ce7833782a987d55f446a0ab5e4775 100644 (file)
@@ -794,11 +794,11 @@ static void rna_def_constraint_transform(BlenderRNA *brna)
                {2, "SCALE", "Scale", ""},
                {0, NULL, NULL, NULL}};
 
-       static EnumPropertyItem axis_map_items[] = {
+       /*static EnumPropertyItem axis_map_items[] = {
                {0, "X", "X", ""},
                {1, "Y", "Y", ""},
                {2, "Z", "Z", ""},
-               {0, NULL, NULL, NULL}};
+               {0, NULL, NULL, NULL}};*/
 
        srna= RNA_def_struct(brna, "TransformConstraint", "Constraint");
        RNA_def_struct_ui_text(srna, "Transformation Constraint", "Maps transformations of the target to the object.");
index 7ad40d3dcd32966e020aaecfd93231a93d03fe90..5ecab0ddbb534bbe5e92786be272267e37b2a195 100644 (file)
@@ -455,7 +455,7 @@ static PyObject *pyrna_prop_subscript( BPy_PropertyRNA * self, PyObject *key )
 {
        PyObject *ret;
        PointerRNA newptr;
-       int keynum;
+       int keynum = 0;
        char *keyname = NULL;
        
        if (PyUnicode_Check(key)) {
@@ -505,7 +505,7 @@ static PyObject *pyrna_prop_subscript( BPy_PropertyRNA * self, PyObject *key )
 static int pyrna_prop_assign_subscript( BPy_PropertyRNA * self, PyObject *key, PyObject *value )
 {
        int ret = 0;
-       int keynum;
+       int keynum = 0;
        char *keyname = NULL;
        
        if (!RNA_property_editable(&self->ptr, self->prop)) {
index 643a1370f80a7803d1e929a20b8c5a6fb52c855c..c411bdeece893a2af82923c08ffcb5b107376e94 100644 (file)
@@ -408,7 +408,7 @@ static int wm_triple_gen_textures(wmWindow *win, wmDrawTriple *triple)
                        glTexImage2D(GL_PROXY_TEXTURE_2D, 0, GL_RGB8, triple->x[x], triple->y[y], 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
                        glGetTexLevelParameteriv(GL_PROXY_TEXTURE_2D, 0, GL_TEXTURE_INTERNAL_FORMAT, &format);
 
-                       if(format != GL_RGB8) {
+                       if(format == 0) {
                                glBindTexture(triple->target, 0);
                                printf("WM: failed to allocate texture for triple buffer drawing (GL_PROXY_TEXTURE_2D).\n");
                                return 0;
index 20258f3f2d30481be667e8c4e4a9080ac6a3472b..e60eecc9a04b2329fa662345d7550051ce4eaf03 100644 (file)
@@ -96,9 +96,6 @@
 /* patching UserDef struct and Themes */
 static void init_userdef_themes(void)
 {
-       // sets themes, fonts, .. from userdef
-       UI_init_userdef();
-       
 //     countall();
        
        /* the UserDef struct is not corrected with do_versions() .... ugh! */
@@ -366,6 +363,9 @@ static void init_userdef_themes(void)
 
        MEM_CacheLimiter_set_maximum(U.memcachelimit * 1024 * 1024);
        
+       // sets themes, fonts, .. from userdef
+       UI_init_userdef();
+       
        /* funny name, but it is GE stuff, moves userdef stuff to engine */
 // XXX space_set_commmandline_options();
        /* this timer uses U */