[Bf-blender-cvs] [3005dd4] wiggly-widgets: Merge master into wiggly-widgets and update drawing to recent changes in master

Julian Eisel noreply at git.blender.org
Sun Nov 22 23:35:40 CET 2015


Commit: 3005dd4160336adebcb4baa7f3b899c8fd0d870a
Author: Julian Eisel
Date:   Sun Nov 22 23:23:09 2015 +0100
Branches: wiggly-widgets
https://developer.blender.org/rB3005dd4160336adebcb4baa7f3b899c8fd0d870a

Merge master into wiggly-widgets and update drawing to recent changes in master

Conflicts:
	source/blender/gpu/intern/gpu_buffers.c
	source/blender/makesrna/intern/rna_userdef.c

===================================================================



===================================================================

diff --cc source/blender/editors/space_view3d/drawobject.c
index 256d34c,a2386c5..20a67fa
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@@ -8699,56 -8692,6 +8693,52 @@@ static void draw_object_mesh_instance(S
  	if (dm) dm->release(dm);
  }
  
 +void ED_draw_object_facemap(Scene *scene, Object *ob, const float col[4], const int facemap)
 +{
 +	DerivedMesh *dm = NULL;
 +
 +	/* happens on undo */
 +	if (ob->type != OB_MESH || !ob->data)
 +		return;
 +
 +	dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH);
 +	if (!dm || !CustomData_has_layer(&dm->polyData, CD_FACEMAP))
 +		return;
 +
 +	DM_update_materials(dm, ob);
 +
 +	glFrontFace((ob->transflag & OB_NEG_SCALE) ? GL_CW : GL_CCW);
 +	
 +	/* add polygon offset so we draw above the original surface */
 +	glPolygonOffset(1.0, 1.0);
 +
 +	dm->totfmaps = BLI_listbase_count(&ob->fmaps);
 +
 +	GPU_facemap_setup(dm);
 +
 +	glColor4fv(col);
 +
 +	glPushAttrib(GL_ENABLE_BIT);
 +	glEnable(GL_BLEND);
 +	glDisable(GL_LIGHTING);
 +
 +	/* always draw using backface culling */
 +	glEnable(GL_CULL_FACE);
 +	glCullFace(GL_BACK);
 +
 +	if (dm->drawObject->facemapindices) {
- 		if (dm->drawObject->facemapindices->use_vbo)
- 			glDrawElements(GL_TRIANGLES, dm->drawObject->facemap_count[facemap] * 3, GL_UNSIGNED_INT,
- 			               (int *)NULL + dm->drawObject->facemap_start[facemap] * 3);
- 		else
- 			glDrawElements(GL_TRIANGLES, dm->drawObject->facemap_count[facemap] * 3, GL_UNSIGNED_INT,
- 			               (int *)dm->drawObject->facemapindices->pointer + dm->drawObject->facemap_start[facemap] * 3);
++		glDrawElements(GL_TRIANGLES, dm->drawObject->facemap_count[facemap] * 3, GL_UNSIGNED_INT,
++		               (int *)NULL + dm->drawObject->facemap_start[facemap] * 3);
 +	}
 +	glPopAttrib();
 +
 +	GPU_buffers_unbind();
 +
 +	glPolygonOffset(0.0, 0.0);
 +	dm->release(dm);
 +}
 +
 +
  void draw_object_instance(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, const char dt, int outline)
  {
  	if (ob == NULL)
diff --cc source/blender/editors/space_view3d/view3d_intern.h
index c5b4ae2,94c1db8..c44769d
--- a/source/blender/editors/space_view3d/view3d_intern.h
+++ b/source/blender/editors/space_view3d/view3d_intern.h
@@@ -270,19 -271,10 +270,18 @@@ ARegion *view3d_has_tools_region(ScrAre
  
  extern const char *view3d_context_dir[]; /* doc access */
  
 +/* view3d_widgets.c */
 +int  WIDGETGROUP_camera_poll(const struct bContext *C, struct wmWidgetGroupType *wgrouptype);
 +void WIDGETGROUP_camera_create(const struct bContext *C, struct wmWidgetGroup *wgroup);
 +int  WIDGETGROUP_forcefield_poll(const struct bContext *C, struct wmWidgetGroupType *wgrouptype);
 +void WIDGETGROUP_forcefield_create(const struct bContext *C, struct wmWidgetGroup *wgroup);
 +int  WIDGETGROUP_armature_facemaps_poll(const struct bContext *C, struct wmWidgetGroupType *wgrouptype);
 +void WIDGETGROUP_armature_facemaps_create(const struct bContext *C, struct wmWidgetGroup *wgroup);
 +
  /* draw_volume.c */
  void draw_smoke_volume(struct SmokeDomainSettings *sds, struct Object *ob,
-                        struct GPUTexture *tex, const float min[3], const float max[3],
-                        const int res[3], float dx, float base_scale, const float viewnormal[3],
-                        struct GPUTexture *tex_shadow, struct GPUTexture *tex_flame);
+                        const float min[3], const float max[3],
+                        const int res[3], const float viewnormal[3]);
  
  //#define SMOKE_DEBUG_VELOCITY
  //#define SMOKE_DEBUG_HEAT
diff --cc source/blender/gpu/GPU_buffers.h
index 65a1bb9,9c67f40..8b16625
--- a/source/blender/gpu/GPU_buffers.h
+++ b/source/blender/gpu/GPU_buffers.h
@@@ -52,14 -52,9 +52,12 @@@ struct GPUDrawObject
  struct PBVH;
  struct MVert;
  
 +typedef void (*GPUBufferCopyFunc)(DerivedMesh *dm, float *varray, int *index,
 +                                  int *mat_orig_to_new, void *user_data);
 +
  typedef struct GPUBuffer {
  	size_t size;        /* in bytes */
- 	void *pointer;   /* used with vertex arrays */
  	unsigned int id; /* used with vertex buffer objects */
- 	bool use_vbo;    /* true for VBOs, false for vertex arrays */
  } GPUBuffer;
  
  typedef struct GPUBufferMaterial {
diff --cc source/blender/gpu/intern/gpu_buffers.c
index d354cc3,69aca31..e5b48e6
--- a/source/blender/gpu/intern/gpu_buffers.c
+++ b/source/blender/gpu/intern/gpu_buffers.c
@@@ -80,23 -80,21 +80,23 @@@ static size_t gpu_buffer_size_from_type
  
  const GPUBufferTypeSettings gpu_buffer_type_settings[] = {
      /* vertex */
-     {GL_ARRAY_BUFFER_ARB, 3},
+     {GL_ARRAY_BUFFER, 3},
      /* normal */
-     {GL_ARRAY_BUFFER_ARB, 4}, /* we copy 3 shorts per normal but we add a fourth for alignment */
+     {GL_ARRAY_BUFFER, 4}, /* we copy 3 shorts per normal but we add a fourth for alignment */
      /* mcol */
-     {GL_ARRAY_BUFFER_ARB, 3},
+     {GL_ARRAY_BUFFER, 3},
      /* uv */
-     {GL_ARRAY_BUFFER_ARB, 2},
+     {GL_ARRAY_BUFFER, 2},
      /* uv for texpaint */
-     {GL_ARRAY_BUFFER_ARB, 4},
+     {GL_ARRAY_BUFFER, 4},
      /* edge */
-     {GL_ELEMENT_ARRAY_BUFFER_ARB, 2},
+     {GL_ELEMENT_ARRAY_BUFFER, 2},
      /* uv edge */
-     {GL_ELEMENT_ARRAY_BUFFER_ARB, 4},
+     {GL_ELEMENT_ARRAY_BUFFER, 4},
      /* triangles, 1 point since we are allocating from tottriangle points, which account for all points */
-     {GL_ELEMENT_ARRAY_BUFFER_ARB, 1},
+     {GL_ELEMENT_ARRAY_BUFFER, 1},
 +    /* facemap */
-     {GL_ELEMENT_ARRAY_BUFFER_ARB, 3},
++    {GL_ELEMENT_ARRAY_BUFFER, 3},
  };
  
  #define MAX_GPU_ATTRIB_DATA 32
@@@ -889,31 -770,6 +781,24 @@@ void GPU_triangle_setup(struct DerivedM
  	GLStates |= GPU_BUFFER_ELEMENT_STATE;
  }
  
 +void GPU_facemap_setup(DerivedMesh *dm)
 +{
 +	if (!gpu_buffer_setup_common(dm, GPU_BUFFER_FACEMAP))
 +		return;
 +	
 +	if (!gpu_buffer_setup_common(dm, GPU_BUFFER_VERTEX))
 +		return;
 +
 +	glEnableClientState(GL_VERTEX_ARRAY);
- 	if (dm->drawObject->points->use_vbo) {
- 		glBindBufferARB(GL_ARRAY_BUFFER_ARB, dm->drawObject->points->id);
- 		glVertexPointer(3, GL_FLOAT, 0, 0);
- 	}
- 	else {
- 		glVertexPointer(3, GL_FLOAT, 0, dm->drawObject->points->pointer);
- 	}
++	glBindBuffer(GL_ARRAY_BUFFER_ARB, dm->drawObject->points->id);
++	glVertexPointer(3, GL_FLOAT, 0, 0);
 +	
 +	GLStates |= GPU_BUFFER_VERTEX_STATE;
- 	if (dm->drawObject->facemapindices->use_vbo) {
- 		glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, dm->drawObject->facemapindices->id);
- 	}
++	glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, dm->drawObject->facemapindices->id);
 +	
 +	GLStates |= GPU_BUFFER_ELEMENT_STATE;
 +}
 +
  static int GPU_typesize(int type)
  {
  	switch (type) {
diff --cc source/blender/makesrna/intern/rna_userdef.c
index f37a762,a61f6b9..c845bcf
--- a/source/blender/makesrna/intern/rna_userdef.c
+++ b/source/blender/makesrna/intern/rna_userdef.c
@@@ -161,25 -161,33 +161,6 @@@ static void rna_userdef_language_update
  	UI_reinit_font();
  }
  
- static void update_cb(PBVHNode *node, void *UNUSED(rebuild))
 -static void rna_userdef_show_manipulator_update(Main *bmain, Scene *scene, PointerRNA *ptr)
--{
- 	BKE_pbvh_node_mark_rebuild_draw(node);
- }
 -	UserDef *userdef = (UserDef *)ptr->data;
--
- static void rna_userdef_vbo_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *UNUSED(ptr))
- {
- 	Object *ob;
- 	
- 	for (ob = bmain->object.first; ob; ob = ob->id.next) {
- 		GPU_drawobject_free(ob->derivedFinal);
 -	/* lame, loop over all views and set */
 -	bScreen *sc;
 -	ScrArea *sa;
 -	SpaceLink *sl;
--
- 		if (ob->sculpt && ob->sculpt->pbvh) {
- 			BKE_pbvh_search_callback(ob->sculpt->pbvh, NULL, NULL, update_cb, NULL);
 -	/* from scene copy to the other views */
 -	for (sc = bmain->screen.first; sc; sc = sc->id.next) {
 -		for (sa = sc->areabase.first; sa; sa = sa->next) {
 -			for (sl = sa->spacedata.first; sl; sl = sl->next) {
 -				if (sl->spacetype == SPACE_VIEW3D) {
 -					View3D *v3d = (View3D *)sl;
 -					if (userdef->tw_flag & V3D_USE_MANIPULATOR)
 -						v3d->twflag |= V3D_USE_MANIPULATOR;
 -					else
 -						v3d->twflag &= ~V3D_USE_MANIPULATOR;
 -				}
 -			}
--		}
--	}
- 	GPU_buffer_multires_free(false);
 -	
 -	rna_userdef_update(bmain, scene, ptr);
--}
--
  
  static void rna_userdef_script_autoexec_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
  {




More information about the Bf-blender-cvs mailing list