[Bf-blender-cvs] [c066dde] wiggly-widgets: Merge branch 'master' into wiggly-widgets

Julian Eisel noreply at git.blender.org
Tue Jun 23 07:26:11 CEST 2015


Commit: c066dded997b5da90db2c583194b8e79d9a5dba3
Author: Julian Eisel
Date:   Tue Jun 23 07:25:22 2015 +0200
Branches: wiggly-widgets
https://developer.blender.org/rBc066dded997b5da90db2c583194b8e79d9a5dba3

Merge branch 'master' into wiggly-widgets

Conflicts:
	source/blender/blenkernel/intern/cdderivedmesh.c
	source/blender/editors/space_clip/clip_draw.c
	source/blender/gpu/GPU_buffers.h

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



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

diff --cc source/blender/blenloader/intern/versioning_270.c
index e587896,6ab655e..7f61769
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@@ -830,43 -827,19 +827,57 @@@ void blo_do_versions_270(FileData *fd, 
  				scene->r.simplify_particles_render = scene->r.simplify_particles;
  			}
  		}
+ 
+ 		if (!DNA_struct_elem_find(fd->filesdna, "DecimateModifierData", "float", "defgrp_factor")) {
+ 			Object *ob;
+ 
+ 			for (ob = main->object.first; ob; ob = ob->id.next) {
+ 				ModifierData *md;
+ 				for (md = ob->modifiers.first; md; md = md->next) {
+ 					if (md->type == eModifierType_Decimate) {
+ 						DecimateModifierData *dmd = (DecimateModifierData *)md;
+ 						dmd->defgrp_factor = 1.0f;
+ 					}
+ 				}
+ 			}
+ 		}
  	}
 +	{
 +		if (!DNA_struct_elem_find(fd->filesdna, "SpaceNode", "float", "backdrop_zoom")) {
 +			bScreen *sc;
 +			for (sc = main->screen.first; sc; sc = sc->id.next) {
 +				ScrArea *sa;
 +				for (sa = sc->areabase.first; sa; sa = sa->next) {
 +					SpaceLink *sl;
 +					for (sl = sa->spacedata.first; sl; sl = sl->next) {
 +						if (sl->spacetype == SPACE_NODE) {
 +							SpaceNode *snode = (SpaceNode *)sl;
 +							snode->backdrop_zoom = 1.0;
 +						}
 +						if (sl->spacetype == SPACE_SEQ) {
 +							SpaceSeq *sseq = (SpaceSeq *)sl;
 +							sseq->overdrop_zoom = 1.0;
 +						}
 +					}
 +				}
 +			}
 +		}
 +
 +		if (!DNA_struct_elem_find(fd->filesdna, "SpaceIpo", "float", "backdrop_zoom")) {
 +			bScreen *sc;
 +			for (sc = main->screen.first; sc; sc = sc->id.next) {
 +				ScrArea *sa;
 +				for (sa = sc->areabase.first; sa; sa = sa->next) {
 +					SpaceLink *sl;
 +					for (sl = sa->spacedata.first; sl; sl = sl->next) {
 +						if (sl->spacetype == SPACE_IPO) {
 +							SpaceIpo *sipo = (SpaceIpo *)sl;
 +							sipo->backdrop_zoom = 1.0f;
 +							sipo->backdrop_opacity = 0.7f;
 +						}
 +					}
 +				}
 +			}
 +		}
 +	}
  }
diff --cc source/blender/gpu/GPU_buffers.h
index cda7bff,a8630d0..aa75bfe
--- a/source/blender/gpu/GPU_buffers.h
+++ b/source/blender/gpu/GPU_buffers.h
@@@ -118,9 -114,9 +118,13 @@@ typedef struct GPUDrawObject 
  	int totvert;
  	int totedge;
  
+ 	int loose_edge_offset;
+ 	int tot_loose_edge_drawn;
+ 	int tot_edge_drawn;
++
 +	int totfacemaps;    /* total facemaps */
 +	int *facemap_start; /* beginning of facemap */
 +	int *facemap_count; /* elements per facemap */
  } GPUDrawObject;
  
  /* used for GLSL materials */
@@@ -136,21 -132,9 +140,22 @@@ void GPU_global_buffer_pool_free_unused
  GPUBuffer *GPU_buffer_alloc(int size, bool force_vertex_arrays);
  void GPU_buffer_free(GPUBuffer *buffer);
  
+ GPUDrawObject *GPU_drawobject_new(struct DerivedMesh *dm);
  void GPU_drawobject_free(struct DerivedMesh *dm);
  
 +/* flag that controls data type to fill buffer with, a modifier will prepare. */
 +typedef enum {
 +	GPU_BUFFER_VERTEX = 0,
 +	GPU_BUFFER_NORMAL,
 +	GPU_BUFFER_COLOR,
 +	GPU_BUFFER_UV,
 +	GPU_BUFFER_UV_TEXPAINT,
 +	GPU_BUFFER_EDGE,
 +	GPU_BUFFER_UVEDGE,
 +	GPU_BUFFER_FACEMAP
 +} GPUBufferType;
 +
 +
  /* called before drawing */
  void GPU_vertex_setup(struct DerivedMesh *dm);
  void GPU_normal_setup(struct DerivedMesh *dm);
diff --cc source/blender/gpu/intern/gpu_buffers.c
index 8554f2c,62843f0..5a75fa0
--- a/source/blender/gpu/intern/gpu_buffers.c
+++ b/source/blender/gpu/intern/gpu_buffers.c
@@@ -984,19 -940,62 +984,64 @@@ static void GPU_buffer_copy_mcol(Derive
  
  static void GPU_buffer_copy_edge(DerivedMesh *dm, float *varray_, int *UNUSED(index), int *UNUSED(mat_orig_to_new), void *UNUSED(user))
  {
- 	MEdge *medge;
+ 	MEdge *medge, *medge_base;
  	unsigned int *varray = (unsigned int *)varray_;
- 	int i, totedge;
+ 	int i, totedge, iloose, inorm, iloosehidden, inormhidden;
+ 	int tot_loose_hidden = 0, tot_loose = 0;
+ 	int tot_hidden = 0, tot = 0;
  
- 	medge = dm->getEdgeArray(dm);
+ 	medge_base = medge = dm->getEdgeArray(dm);
  	totedge = dm->getNumEdges(dm);
 +	
 +	/* two passes, one to count number of faces per facemap, one to actually copy the data */
  
  	for (i = 0; i < totedge; i++, medge++) {
- 		varray[i * 2] = dm->drawObject->vert_points[medge->v1].point_index;
- 		varray[i * 2 + 1] = dm->drawObject->vert_points[medge->v2].point_index;
+ 		if (medge->flag & ME_EDGEDRAW) {
+ 			if (medge->flag & ME_LOOSEEDGE) tot_loose++;
+ 			else tot++;
+ 		}
+ 		else {
+ 			if (medge->flag & ME_LOOSEEDGE) tot_loose_hidden++;
+ 			else tot_hidden++;
+ 		}
  	}
+ 
+ 	inorm = 0;
+ 	inormhidden = tot;
+ 	iloose = tot + tot_hidden;
+ 	iloosehidden = iloose + tot_loose;
+ 
+ 	medge = medge_base;
+ 	for (i = 0; i < totedge; i++, medge++) {
+ 		if (medge->flag & ME_EDGEDRAW) {
+ 			if (medge->flag & ME_LOOSEEDGE) {
+ 				varray[iloose * 2] = dm->drawObject->vert_points[medge->v1].point_index;
+ 				varray[iloose * 2 + 1] = dm->drawObject->vert_points[medge->v2].point_index;
+ 				iloose++;
+ 			}
+ 			else {
+ 				varray[inorm * 2] = dm->drawObject->vert_points[medge->v1].point_index;
+ 				varray[inorm * 2 + 1] = dm->drawObject->vert_points[medge->v2].point_index;
+ 				inorm++;
+ 			}
+ 		}
+ 		else {
+ 			if (medge->flag & ME_LOOSEEDGE) {
+ 				varray[iloosehidden * 2] = dm->drawObject->vert_points[medge->v1].point_index;
+ 				varray[iloosehidden * 2 + 1] = dm->drawObject->vert_points[medge->v2].point_index;
+ 				iloosehidden++;
+ 			}
+ 			else {
+ 				varray[inormhidden * 2] = dm->drawObject->vert_points[medge->v1].point_index;
+ 				varray[inormhidden * 2 + 1] = dm->drawObject->vert_points[medge->v2].point_index;
+ 				inormhidden++;
+ 			}
+ 		}
+ 	}
+ 
+ 	dm->drawObject->tot_loose_edge_drawn = tot_loose;
+ 	dm->drawObject->loose_edge_offset = tot + tot_hidden;
+ 	dm->drawObject->tot_edge_drawn = tot;
  }
  
  static void GPU_buffer_copy_uvedge(DerivedMesh *dm, float *varray, int *UNUSED(index), int *UNUSED(mat_orig_to_new), void *UNUSED(user))
diff --cc source/blender/windowmanager/CMakeLists.txt
index 75df966,3f5c868..d5e360d
--- a/source/blender/windowmanager/CMakeLists.txt
+++ b/source/blender/windowmanager/CMakeLists.txt
@@@ -81,9 -77,15 +81,16 @@@ set(SR
  	wm_files.h
  	wm_subwindow.h
  	wm_window.h
 +	3d_widgets/ui_widget_library.h
  )
  
+ if(WITH_AUDASPACE)
+ 	list(APPEND INC
+ 		../../../intern/audaspace/intern
+ 	)
+ 	add_definitions(-DWITH_AUDASPACE)
+ endif()
+ 
  add_definitions(${GL_DEFINITIONS})
  
  if(WITH_INTERNATIONAL)




More information about the Bf-blender-cvs mailing list