[Bf-blender-cvs] [d898581] gooseberry: Merge branch 'master' into gooseberry

Antony Riakiotakis noreply at git.blender.org
Wed Nov 26 16:28:25 CET 2014


Commit: d898581b520a452e6fe6c4ba4083f523d08a81c7
Author: Antony Riakiotakis
Date:   Wed Nov 26 15:09:57 2014 +0100
Branches: gooseberry
https://developer.blender.org/rBd898581b520a452e6fe6c4ba4083f523d08a81c7

Merge branch 'master' into gooseberry

Conflicts:
	source/blender/editors/space_view3d/view3d_draw.c
	source/blender/gpu/intern/gpu_extensions.c

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



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

diff --cc SConstruct
index 845b0b8,4c2097f..bdfa9dc
--- a/SConstruct
+++ b/SConstruct
@@@ -757,13 -757,9 +757,14 @@@ if B.targets != ['cudakernels']
      data_to_c_simple("source/blender/gpu/shaders/gpu_shader_sep_gaussian_blur_frag.glsl")
      data_to_c_simple("source/blender/gpu/shaders/gpu_shader_sep_gaussian_blur_vert.glsl")
      data_to_c_simple("source/blender/gpu/shaders/gpu_shader_vertex.glsl")
+     data_to_c_simple("source/blender/gpu/shaders/gpu_shader_vertex_world.glsl")
      data_to_c_simple("source/blender/gpu/shaders/gpu_shader_vsm_store_frag.glsl")
      data_to_c_simple("source/blender/gpu/shaders/gpu_shader_vsm_store_vert.glsl")
 +    data_to_c_simple("source/blender/gpu/shaders/gpu_shader_fx_ssao_frag.glsl")
 +    data_to_c_simple("source/blender/gpu/shaders/gpu_shader_fx_dof_frag.glsl")
 +    data_to_c_simple("source/blender/gpu/shaders/gpu_shader_fx_dof_vert.glsl")
 +    data_to_c_simple("source/blender/gpu/shaders/gpu_shader_fx_lib.glsl")
 +    data_to_c_simple("source/blender/gpu/shaders/gpu_shader_fx_vert.glsl")
      data_to_c_simple("intern/opencolorio/gpu_shader_display_transform.glsl")
  
      # --- blender ---
diff --cc source/blender/gpu/CMakeLists.txt
index 92841e4,361c247..ca11a3c
--- a/source/blender/gpu/CMakeLists.txt
+++ b/source/blender/gpu/CMakeLists.txt
@@@ -91,13 -73,9 +91,14 @@@ data_to_c_simple(shaders/gpu_shader_sep
  data_to_c_simple(shaders/gpu_shader_simple_frag.glsl SRC)
  data_to_c_simple(shaders/gpu_shader_simple_vert.glsl SRC)
  data_to_c_simple(shaders/gpu_shader_vertex.glsl SRC)
+ data_to_c_simple(shaders/gpu_shader_vertex_world.glsl SRC)
  data_to_c_simple(shaders/gpu_shader_vsm_store_frag.glsl SRC)
  data_to_c_simple(shaders/gpu_shader_vsm_store_vert.glsl SRC)
 +data_to_c_simple(shaders/gpu_shader_fx_vert.glsl SRC)
 +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_lib.glsl SRC)
  
  if(WITH_GAMEENGINE)
  	add_definitions(-DWITH_GAMEENGINE)
diff --cc source/blender/gpu/GPU_extensions.h
index 6baa11f,bb0cf2d..d95ff44
--- a/source/blender/gpu/GPU_extensions.h
+++ b/source/blender/gpu/GPU_extensions.h
@@@ -151,9 -148,8 +151,10 @@@ void GPU_framebuffer_texture_detach(GPU
  void GPU_framebuffer_slot_bind(GPUFrameBuffer *fb, int slot);
  void GPU_framebuffer_texture_unbind(GPUFrameBuffer *fb, GPUTexture *tex);
  void GPU_framebuffer_free(GPUFrameBuffer *fb);
+ bool GPU_framebuffer_check_valid(GPUFrameBuffer *fb, char err_out[256]);
  
 +void GPU_framebuffer_bind_no_save(GPUFrameBuffer *fb, int slot);
 +
  void GPU_framebuffer_restore(void);
  void GPU_framebuffer_blur(GPUFrameBuffer *fb, GPUTexture *tex, GPUFrameBuffer *blurfb, GPUTexture *blurtex);
  
diff --cc source/blender/gpu/intern/gpu_extensions.c
index fb36eeb,faec3cc..ff322d8
--- a/source/blender/gpu/intern/gpu_extensions.c
+++ b/source/blender/gpu/intern/gpu_extensions.c
@@@ -1091,19 -1023,29 +1088,40 @@@ void GPU_framebuffer_texture_unbind(GPU
  	glPopAttrib();
  }
  
 +void GPU_framebuffer_bind_no_save(GPUFrameBuffer *fb, int slot)
 +{
 +	glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fb->object);
 +	/* last bound prevails here, better allow explicit control here too */
 +	glDrawBuffer(GL_COLOR_ATTACHMENT0_EXT + slot);
 +	glReadBuffer(GL_COLOR_ATTACHMENT0_EXT + slot);
 +
 +	/* push matrices and set default viewport and matrix */
 +	glViewport(0, 0, fb->colortex[slot]->w, fb->colortex[slot]->h);
 +	GG.currentfb = fb->object;
 +	GG.currentfb = fb->object;
 +}
  
+ bool GPU_framebuffer_check_valid(GPUFrameBuffer *fb, char err_out[256])
+ {
+ 	GLenum status;
+ 	
+ 	glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fb->object);
+ 	GG.currentfb = fb->object;
+ 	
+ 	/* Clean glError buffer. */
+ 	while (glGetError() != GL_NO_ERROR) {}
+ 	
+ 	status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
+ 	
+ 	if (status != GL_FRAMEBUFFER_COMPLETE_EXT) {
+ 		GPU_framebuffer_restore();
+ 		GPU_print_framebuffer_error(status, err_out);
+ 		return false;
+ 	}
+ 	
+ 	return true;
+ }
+ 
 -
  void GPU_framebuffer_free(GPUFrameBuffer *fb)
  {
  	int i;




More information about the Bf-blender-cvs mailing list