[Bf-blender-cvs] [9d85470] temp_viewport_fx_merge: Merge branch 'master' into temp_viewport_fx_merge

Antony Riakiotakis noreply at git.blender.org
Wed Apr 1 11:34:40 CEST 2015


Commit: 9d854700d613210e26e9693bfde78afc566e07a9
Author: Antony Riakiotakis
Date:   Wed Apr 1 11:34:30 2015 +0200
Branches: temp_viewport_fx_merge
https://developer.blender.org/rB9d854700d613210e26e9693bfde78afc566e07a9

Merge branch 'master' into temp_viewport_fx_merge

Conflicts:
	source/blender/editors/space_view3d/drawobject.c
	source/blender/editors/space_view3d/view3d_edit.c
	source/blender/gpu/GPU_extensions.h
	source/blender/gpu/intern/gpu_draw.c
	source/blender/gpu/intern/gpu_extensions.c

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



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

diff --cc source/blender/editors/space_view3d/drawobject.c
index a80f708,f14c19d..53b3514
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@@ -6420,19 -6428,20 +6421,16 @@@ static void draw_empty_sphere(float siz
  /* draw a cone for use as an empty drawtype */
  static void draw_empty_cone(float size)
  {
 -	const float radius = size;
 +	struct GPUprim3 prim = GPU_PRIM_LOFI_WIRE;
- 	float cent = 0;
 +	float radius;
  
 -	GLUquadricObj *qobj = gluNewQuadric();
 -	gluQuadricDrawStyle(qobj, GLU_SILHOUETTE);
 -	
  	glPushMatrix();
  	
- 	radius = size;
- 	glTranslatef(cent, cent, cent);
  	glScalef(radius, size * 2.0f, radius);
  	glRotatef(-90.0, 1.0, 0.0, 0.0);
 -	gluCylinder(qobj, 1.0, 0.0, 1.0, 8, 1);
 +	gpuDrawCylinder(&prim, 1.0f, 0.0f, 1.0f);
  
  	glPopMatrix();
 -	
 -	gluDeleteQuadric(qobj);
  }
  
  static void drawspiral(const float cent[3], float rad, float tmat[4][4], int start)
diff --cc source/blender/editors/space_view3d/view3d_edit.c
index 634cea3,671fc68..1951bdb
--- a/source/blender/editors/space_view3d/view3d_edit.c
+++ b/source/blender/editors/space_view3d/view3d_edit.c
@@@ -83,9 -80,7 +80,10 @@@
  
  #include "view3d_intern.h"  /* own include */
  
++<<<<<<< HEAD
 +#include "GPU_matrix.h"
 +
- bool ED_view3d_offset_lock_check(struct View3D *v3d, struct RegionView3D *rv3d)
+ bool ED_view3d_offset_lock_check(const  View3D *v3d, const  RegionView3D *rv3d)
  {
  	return (rv3d->persp != RV3D_CAMOB) && (v3d->ob_centre_cursor || v3d->ob_centre);
  }
diff --cc source/blender/gpu/CMakeLists.txt
index 1d3d341,97b0e7e..5eb5b38
--- a/source/blender/gpu/CMakeLists.txt
+++ b/source/blender/gpu/CMakeLists.txt
@@@ -138,21 -102,11 +141,24 @@@ data_to_c_simple(shaders/gpu_shader_fx_
  data_to_c_simple(shaders/gpu_shader_fx_ssao_frag.glsl SRC)
  data_to_c_simple(shaders/gpu_shader_fx_dof_frag.glsl SRC)
  data_to_c_simple(shaders/gpu_shader_fx_dof_vert.glsl SRC)
+ data_to_c_simple(shaders/gpu_shader_fx_dof_hq_frag.glsl SRC)
+ data_to_c_simple(shaders/gpu_shader_fx_dof_hq_vert.glsl SRC)
+ data_to_c_simple(shaders/gpu_shader_fx_dof_hq_geo.glsl SRC)
  data_to_c_simple(shaders/gpu_shader_fx_depth_resolve.glsl SRC)
  data_to_c_simple(shaders/gpu_shader_fx_lib.glsl SRC)
 +data_to_c_simple(shaders/gpu_shader_common_uniforms.glsl SRC)
 +data_to_c_simple(shaders/gpu_shader_common_constants.glsl SRC)
 +data_to_c_simple(shaders/gpu_shader_common_attribs.glsl SRC)
 +data_to_c_simple(shaders/gpu_shader_pixels_uniforms.glsl SRC)
 +data_to_c_simple(shaders/gpu_shader_pixels_vert.glsl SRC)
 +data_to_c_simple(shaders/gpu_shader_pixels_frag.glsl SRC)
 +data_to_c_simple(shaders/gpu_shader_raster_uniforms.glsl SRC)
 +data_to_c_simple(shaders/gpu_shader_raster_vert.glsl SRC)
 +data_to_c_simple(shaders/gpu_shader_raster_frag.glsl SRC)
 +data_to_c_simple(shaders/gpu_shader_font_vert.glsl SRC)
 +data_to_c_simple(shaders/gpu_shader_font_frag.glsl SRC)
 +data_to_c_simple(shaders/gpu_shader_basic_vert.glsl SRC)
 +data_to_c_simple(shaders/gpu_shader_basic_frag.glsl SRC)
  
  if(WITH_GAMEENGINE)
  	add_definitions(-DWITH_GAMEENGINE)
diff --cc source/blender/gpu/GPU_extensions.h
index 76a66cd,de0af81..d400c31
--- a/source/blender/gpu/GPU_extensions.h
+++ b/source/blender/gpu/GPU_extensions.h
@@@ -64,7 -66,7 +66,8 @@@ bool GPU_instanced_drawing_support(void
  
  int GPU_max_texture_size(void);
  int GPU_color_depth(void);
 +int GPU_max_textures(void);
+ void GPU_get_dfdy_factors(float fac[2]);
  
  void GPU_code_generate_glsl_lib(void);
  
diff --cc source/blender/gpu/intern/gpu_draw.c
index ce78e736,7f3a998..c70a671
--- a/source/blender/gpu/intern/gpu_draw.c
+++ b/source/blender/gpu/intern/gpu_draw.c
@@@ -729,10 -723,13 +728,10 @@@ void GPU_create_gl_tex(unsigned int *bi
  	glBindTexture(GL_TEXTURE_2D, *bind);
  
  	if (use_high_bit_depth) {
 -		if (GLEW_ARB_texture_float)
 -			glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F, rectw, recth, 0, GL_RGBA, GL_FLOAT, frect);
 -		else
 -			glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16, rectw, recth, 0, GL_RGBA, GL_FLOAT, frect);
 +			glTexImage2D(GL_TEXTURE_2D, 0,  internal_format,  rectw, recth, 0, GL_RGBA, GL_FLOAT, frect);
  	}
  	else
- 		glTexImage2D(GL_TEXTURE_2D, 0,  GL_RGBA,  rectw, recth, 0, GL_RGBA, GL_UNSIGNED_BYTE, rect);
+ 		glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, rectw, recth, 0, GL_RGBA, GL_UNSIGNED_BYTE, rect);
  
  	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gpu_get_mipmap_filter(1));
  
diff --cc source/blender/gpu/intern/gpu_extensions.c
index 9f7ab6e,363e199..26910e1
--- a/source/blender/gpu/intern/gpu_extensions.c
+++ b/source/blender/gpu/intern/gpu_extensions.c
@@@ -140,56 -148,11 +148,61 @@@ int GPU_max_texture_size(void
  	return GG.maxtexsize;
  }
  
 +/* Computes the maximum number of textures 'n' that
 + * can be referenced by ActiveTexture(TEXTURE0+n-1)
 + *
 + * This is for any use of ActiveTexture.
 + *
 + * Individual limits, such as for the multitexture extension, gl_TexCoord,
 + * vertex shaders, fragment shader, etc. will each have different limits.
 + */
 +static GLint get_max_textures(void)
 + {
 +	GLint maxTextureUnits;
 +	GLint maxTextureCoords;
 +	GLint maxCombinedTextureImageUnits;
 +
 +	/* There has to be at least one texture so count that here */
 +	maxTextureUnits = 1;
 +
 +#if !defined(GLEW_ES_ONLY)
 +	if (GPU_PROFILE_COMPAT && (GLEW_VERSION_1_3 || GLEW_ARB_multitexture)) {
 +		/* Multitexture typically supports only 2 or 4 texture stages even on modern hardware. */
 +		glGetIntegerv(GL_MAX_TEXTURE_UNITS, &maxTextureUnits);
 +	}
 +#endif
 +
 +	/* Set to zero here in case they do not get set later */
 +	maxTextureCoords = 0;
 +	maxCombinedTextureImageUnits = 0;
 +
 +	if (GLEW_VERSION_2_0 || GLEW_ARB_fragment_program) {
 +#if !defined(GLEW_ES_ONLY)
 +		if (GPU_PROFILE_COMPAT) {
 +			/* size of gl_TexCoord array in GLSL */
 +			glGetIntegerv(GL_MAX_TEXTURE_COORDS, &maxTextureCoords);
 +		}
 +#endif
 +
 +		/* Number of textures accessible by vertex, fragment, and geometry shaders combined.
 +		 * Individually the limits for each of those programmable units may be smaller. */
 +		glGetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, &maxCombinedTextureImageUnits);
 +	}
 +
 +	return MAX3(maxTextureUnits, maxTextureCoords, maxCombinedTextureImageUnits);
 +}
 +
 +int GPU_max_textures(void)
 +{
 +	return GG.maxtextures;
 +}
 +
 +
+ void GPU_get_dfdy_factors(float fac[2])
+ {
+ 	copy_v2_v2(fac, GG.dfdyfactors);
+ }
+ 
  void gpu_extensions_init(void)
  {
  	GLint r, g, b;
@@@ -289,9 -253,22 +303,23 @@@
  	GG.os = GPU_OS_UNIX;
  #endif
  
- 
 +	GG.maxtextures = get_max_textures();
  
+ 	/* df/dy calculation factors, those are dependent on driver */
+ 	if ((strstr(vendor, "ATI") && strstr(version, "3.3.10750"))) {
+ 		GG.dfdyfactors[0] = 1.0;
+ 		GG.dfdyfactors[1] = -1.0;
+ 	}
+ 	else if (GG.device == GPU_DEVICE_INTEL && GG.os == GPU_OS_WIN) {
+ 		GG.dfdyfactors[0] = -1.0;
+ 		GG.dfdyfactors[1] = 1.0;
+ 	}
+ 	else {
+ 		GG.dfdyfactors[0] = 1.0;
+ 		GG.dfdyfactors[1] = 1.0;
+ 	}
+ 
+ 
  	GPU_invalid_tex_init();
  	GPU_simple_shaders_init();
  }




More information about the Bf-blender-cvs mailing list