[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