[Bf-blender-cvs] [ff2a749] blender2.8: Merge branch 'master' into blender2.8

Lukas Tönne noreply at git.blender.org
Thu Dec 1 10:30:23 CET 2016


Commit: ff2a74906a7b70625a4e941c6a805f7734491204
Author: Lukas Tönne
Date:   Thu Dec 1 10:29:46 2016 +0100
Branches: blender2.8
https://developer.blender.org/rBff2a74906a7b70625a4e941c6a805f7734491204

Merge branch 'master' into blender2.8

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



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

diff --cc intern/cycles/blender/addon/ui.py
index 7ed8c5f,3f7730e..9573156
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@@ -1523,22 -1587,40 +1525,35 @@@ class CyclesScene_PT_simplify(CyclesBut
          cscene = scene.cycles
  
          layout.active = rd.use_simplify
-         split = layout.split()
  
-         col = split.column()
-         col.label(text="Viewport:")
-         col.prop(rd, "simplify_subdivision", text="Subdivision")
+         col = layout.column(align=True)
+         col.label(text="Subdivision")
+         row = col.row(align=True)
+         row.prop(rd, "simplify_subdivision", text="Viewport")
+         row.prop(rd, "simplify_subdivision_render", text="Render")
  
-         col = split.column()
-         col.label(text="Render:")
-         col.prop(rd, "simplify_subdivision_render", text="Subdivision")
 -        col = layout.column(align=True)
 -        col.label(text="Child Particles")
 -        row = col.row(align=True)
 -        row.prop(rd, "simplify_child_particles", text="Viewport")
 -        row.prop(rd, "simplify_child_particles_render", text="Render")
  
-         col = layout.column()
+         col = layout.column(align=True)
+         split = col.split()
+         sub = split.column()
+         sub.label(text="Texture Limit Viewport")
+         sub.prop(cscene, "texture_limit", text="")
+         sub = split.column()
+         sub.label(text="Texture Limit Render")
+         sub.prop(cscene, "texture_limit_render", text="")
+ 
+         split = layout.split()
+         col = split.column()
          col.prop(cscene, "use_camera_cull")
-         subsub = col.column()
-         subsub.active = cscene.use_camera_cull
-         subsub.prop(cscene, "camera_cull_margin")
+         row = col.row()
+         row.active = cscene.use_camera_cull
+         row.prop(cscene, "camera_cull_margin")
  
+         col = split.column()
+         col.prop(cscene, "use_distance_cull")
+         row = col.row()
+         row.active = cscene.use_distance_cull
+         row.prop(cscene, "distance_cull_margin", text="Distance")
  
  def draw_device(self, context):
      scene = context.scene
diff --cc intern/cycles/blender/blender_object.cpp
index 16e32cb,681a22e..0d1b2fc
--- a/intern/cycles/blender/blender_object.cpp
+++ b/intern/cycles/blender/blender_object.cpp
@@@ -586,16 -691,22 +662,15 @@@ void BlenderSync::sync_objects(BL::Spac
  							BL::Array<int, OBJECT_PERSISTENT_ID_SIZE> persistent_id = b_dup->persistent_id();
  
  							/* sync object and mesh or light data */
 -							Object *object = sync_object(b_ob,
 -							                             persistent_id.data,
 -							                             *b_dup,
 -							                             tfm,
 -							                             ob_layer,
 -							                             motion_time,
 -							                             hide_tris,
 -							                             culling,
 -							                             &use_portal);
 -
 -							/* sync possible particle data, note particle_id
 -							 * starts counting at 1, first is dummy particle */
 -							if(!motion && object) {
 -								sync_dupli_particle(b_ob, *b_dup, object);
 -							}
 -
 +							sync_object(b_ob,
 +							            persistent_id.data,
 +							            *b_dup,
 +							            tfm,
 +							            ob_layer,
 +							            motion_time,
 +							            hide_tris,
- 							            use_camera_cull,
- 							            camera_cull_margin,
++							            culling,
 +							            &use_portal);
  						}
  					}
  
diff --cc source/blender/blenlib/BLI_math_matrix.h
index fc4bca1,d0dfad2..029f687
--- a/source/blender/blenlib/BLI_math_matrix.h
+++ b/source/blender/blenlib/BLI_math_matrix.h
@@@ -232,15 -219,14 +232,14 @@@ void mat4_to_size(float r[3], const flo
  
  void translate_m4(float mat[4][4], float tx, float ty, float tz);
  void rotate_m4(float mat[4][4], const char axis, const float angle);
- void rotate_m2(float mat[2][2], const float angle);
  void transform_pivot_set_m4(float mat[4][4], const float pivot[3]);
  
 -void mat3_to_rot_size(float rot[3][3], float size[3], float mat3[3][3]);
 -void mat4_to_loc_rot_size(float loc[3], float rot[3][3], float size[3], float wmat[4][4]);
 -void mat4_to_loc_quat(float loc[3], float quat[4], float wmat[4][4]);
 -void mat4_decompose(float loc[3], float quat[4], float size[3], float wmat[4][4]);
 +void mat3_to_rot_size(float rot[3][3], float size[3], const float mat3[3][3]);
 +void mat4_to_loc_rot_size(float loc[3], float rot[3][3], float size[3], const float wmat[4][4]);
 +void mat4_to_loc_quat(float loc[3], float quat[4], const float wmat[4][4]);
 +void mat4_decompose(float loc[3], float quat[4], float size[3], const float wmat[4][4]);
  
 -void mat3_polar_decompose(float mat3[3][3], float r_U[3][3], float r_P[3][3]);
 +void mat3_polar_decompose(const float mat3[3][3], float r_U[3][3], float r_P[3][3]);
  
  void loc_eul_size_to_mat4(float R[4][4],
                            const float loc[3], const float eul[3], const float size[3]);
diff --cc source/blender/blenlib/intern/math_matrix.c
index d95371b,9a60c67..50b92f5
--- a/source/blender/blenlib/intern/math_matrix.c
+++ b/source/blender/blenlib/intern/math_matrix.c
@@@ -1680,12 -1625,17 +1680,18 @@@ void translate_m4(float mat[4][4], floa
  	mat[3][2] += (Tx * mat[0][2] + Ty * mat[1][2] + Tz * mat[2][2]);
  }
  
 +/* TODO: enum for axis? */
+ /**
+  * Rotate a matrix in-place.
+  *
+  * \note To create a new rotation matrix see:
+  * #axis_angle_to_mat4_single, #axis_angle_to_mat3_single, #angle_to_mat2
+  * (axis & angle args are compatible).
+  */
  void rotate_m4(float mat[4][4], const char axis, const float angle)
  {
- 	int col;
- 	float temp[4] = {0.0f, 0.0f, 0.0f, 0.0f};
- 	float cosine, sine;
+ 	const float angle_cos = cosf(angle);
+ 	const float angle_sin = sinf(angle);
  
  	assert(axis >= 'X' && axis <= 'Z');
  
diff --cc source/blender/editors/space_view3d/view3d_draw.c
index 9184e47,f23e587..2012097
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@@ -70,232 -104,367 +70,233 @@@
  #include "view3d_intern.h"  /* own include */
  
  /* prototypes */
 -static void view3d_stereo3d_setup(Scene *scene, View3D *v3d, ARegion *ar);
 -static void view3d_stereo3d_setup_offscreen(Scene *scene, View3D *v3d, ARegion *ar,
 -                                            float winmat[4][4], const char *viewname);
 -
 -/* handy utility for drawing shapes in the viewport for arbitrary code.
 - * could add lines and points too */
 -// #define DEBUG_DRAW
 -#ifdef DEBUG_DRAW
 -static void bl_debug_draw(void);
 -/* add these locally when using these functions for testing */
 -extern void bl_debug_draw_quad_clear(void);
 -extern void bl_debug_draw_quad_add(const float v0[3], const float v1[3], const float v2[3], const float v3[3]);
 -extern void bl_debug_draw_edge_add(const float v0[3], const float v1[3]);
 -extern void bl_debug_color_set(const unsigned int col);
 -#endif
 +static void draw_all_objects(const bContext *C, ARegion *ar, const bool only_depth, const bool use_depth);
  
 -void circf(float x, float y, float rad)
 -{
 -	GLUquadricObj *qobj = gluNewQuadric(); 
 -	
 -	gluQuadricDrawStyle(qobj, GLU_FILL); 
 -	
 -	glPushMatrix(); 
 -	
 -	glTranslatef(x, y, 0.0);
 -	
 -	gluDisk(qobj, 0.0,  rad, 32, 1);
 -	
 -	glPopMatrix(); 
 -	
 -	gluDeleteQuadric(qobj);
 -}
 +typedef struct DrawData {
 +	rcti border_rect;
 +	bool render_border;
 +	bool clip_border;
 +	bool is_render;
 +	GPUViewport *viewport;
 +} DrawData;
  
 -void circ(float x, float y, float rad)
 +static void view3d_draw_data_init(const bContext *C, ARegion *ar, RegionView3D *rv3d, DrawData *draw_data)
  {
 -	GLUquadricObj *qobj = gluNewQuadric(); 
 -	
 -	gluQuadricDrawStyle(qobj, GLU_SILHOUETTE); 
 -	
 -	glPushMatrix(); 
 -	
 -	glTranslatef(x, y, 0.0);
 -	
 -	gluDisk(qobj, 0.0,  rad, 32, 1);
 -	
 -	glPopMatrix(); 
 -	
 -	gluDeleteQuadric(qobj);
 -}
 -
 +	Scene *scene = CTX_data_scene(C);
 +	View3D *v3d = CTX_wm_view3d(C);
  
 -/* ********* custom clipping *********** */
 +	draw_data->is_render = (v3d->drawtype == OB_RENDER);
  
 -static void view3d_draw_clipping(RegionView3D *rv3d)
 -{
 -	BoundBox *bb = rv3d->clipbb;
 -
 -	if (bb) {
 -		const unsigned int clipping_index[6][4] = {
 -			{0, 1, 2, 3},
 -			{0, 4, 5, 1},
 -			{4, 7, 6, 5},
 -			{7, 3, 2, 6},
 -			{1, 5, 6, 2},
 -			{7, 4, 0, 3}
 -		};
 -
 -		/* fill in zero alpha for rendering & re-projection [#31530] */
 -		unsigned char col[4];
 -		UI_GetThemeColor4ubv(TH_V3D_CLIPPING_BORDER, col);
 -		glColor4ubv(col);
 -
 -		glEnable(GL_BLEND);
 -		glEnableClientState(GL_VERTEX_ARRAY);
 -		glVertexPointer(3, GL_FLOAT, 0, bb->vec);
 -		glDrawElements(GL_QUADS, sizeof(clipping_index) / sizeof(unsigned int), GL_UNSIGNED_INT, clipping_index);
 -		glDisableClientState(GL_VERTEX_ARRAY);
 -		glDisable(GL_BLEND);
 -	}
 -}
 +	draw_data->render_border = ED_view3d_calc_render_border(scene, v3d, ar, &draw_data->border_rect);
 +	draw_data->clip_border = (draw_data->render_border && !BLI_rcti_compare(&ar->drawrct, &draw_data->border_rect));
  
 -void ED_view3d_clipping_set(RegionView3D *rv3d)
 -{
 -	double plane[4];
 -	const unsigned int tot = (rv3d->viewlock & RV3D_BOXCLIP) ? 4 : 6;
 -	unsigned int a;
 -
 -	for (a = 0; a < tot; a++) {
 -		copy_v4db_v4fl(plane, rv3d->clip[a]);
 -		glClipPlane(GL_CLIP_PLANE0 + a, plane);
 -		glEnable(GL_CLIP_PLANE0 + a);
 -	}
 +	draw_data->viewport = rv3d->viewport;
  }
  
 -/* use these to temp disable/enable clipping when 'rv3d->rflag & RV3D_CLIPPING' is set */
 -void ED_view3d_clipping_disable(void)
 -{
 -	unsigned int a;
 +/* ******************** general functions ***************** */
  
 -	for (a = 0; a < 6; a++) {
 -		glDisable(GL_CLIP_PLANE0 + a);
 -	}
 -}
 -void ED_view3d_clipping_enable(void)
 +static bool use_depth_doit(Scene *scene, View3D *v3d)
  {
 -	unsigned int a;
 +	if (v3d->drawtype > OB_WIRE)
 +		return true;
  
 -	for (a = 0; a < 6; a++) {
 -		glEnable(GL_CLIP_PLANE0 + a);
 +	/* special case (depth for wire color) */
 +	if (v3d->drawtype <= OB_WIRE) {
 +		if (scene->obedit && scene->obedit->type == OB_MESH) {
 +		

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list