[Bf-blender-cvs] [0dfc8d6] master: OpenGL: split off framebuffer, shader and texture code into separate files.

Brecht Van Lommel noreply at git.blender.org
Tue Dec 8 20:22:15 CET 2015


Commit: 0dfc8d69392a57e0210644428571dd455cb61241
Author: Brecht Van Lommel
Date:   Sun Dec 6 21:20:19 2015 +0100
Branches: master
https://developer.blender.org/rB0dfc8d69392a57e0210644428571dd455cb61241

OpenGL: split off framebuffer, shader and texture code into separate files.

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

M	source/blender/blenkernel/intern/DerivedMesh.c
M	source/blender/blenkernel/intern/cdderivedmesh.c
M	source/blender/blenkernel/intern/editderivedmesh.c
M	source/blender/blenkernel/intern/icons.c
M	source/blender/blenkernel/intern/subsurf_ccg.c
M	source/blender/editors/render/render_opengl.c
M	source/blender/editors/space_view3d/drawmesh.c
M	source/blender/editors/space_view3d/drawobject.c
M	source/blender/editors/space_view3d/drawvolume.c
M	source/blender/editors/space_view3d/space_view3d.c
M	source/blender/editors/space_view3d/view3d_draw.c
M	source/blender/gpu/CMakeLists.txt
M	source/blender/gpu/GPU_draw.h
M	source/blender/gpu/GPU_extensions.h
A	source/blender/gpu/GPU_framebuffer.h
A	source/blender/gpu/GPU_shader.h
A	source/blender/gpu/GPU_texture.h
M	source/blender/gpu/intern/gpu_basic_shader.c
M	source/blender/gpu/intern/gpu_codegen.c
M	source/blender/gpu/intern/gpu_compositing.c
M	source/blender/gpu/intern/gpu_draw.c
M	source/blender/gpu/intern/gpu_extensions.c
A	source/blender/gpu/intern/gpu_framebuffer.c
M	source/blender/gpu/intern/gpu_material.c
A	source/blender/gpu/intern/gpu_shader.c
A	source/blender/gpu/intern/gpu_texture.c
M	source/blender/python/intern/gpu_offscreen.c
M	source/gameengine/Ketsji/BL_BlenderShader.cpp
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp

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

diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index 07a1d3b..e26e514 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -74,8 +74,8 @@ static DerivedMesh *navmesh_dm_createNavMeshForVisualization(DerivedMesh *dm);
 #include "BLI_sys_types.h" /* for intptr_t support */
 
 #include "GPU_buffers.h"
-#include "GPU_extensions.h"
 #include "GPU_glew.h"
+#include "GPU_shader.h"
 
 #ifdef WITH_OPENSUBDIV
 #  include "DNA_userdef_types.h"
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c
index 1acb9ad..836072d 100644
--- a/source/blender/blenkernel/intern/cdderivedmesh.c
+++ b/source/blender/blenkernel/intern/cdderivedmesh.c
@@ -57,8 +57,8 @@
 
 #include "GPU_buffers.h"
 #include "GPU_draw.h"
-#include "GPU_extensions.h"
 #include "GPU_glew.h"
+#include "GPU_shader.h"
 
 #include "WM_api.h"
 
diff --git a/source/blender/blenkernel/intern/editderivedmesh.c b/source/blender/blenkernel/intern/editderivedmesh.c
index b6d009d..dc50e39 100644
--- a/source/blender/blenkernel/intern/editderivedmesh.c
+++ b/source/blender/blenkernel/intern/editderivedmesh.c
@@ -55,8 +55,8 @@
 
 #include "MEM_guardedalloc.h"
 
-#include "GPU_extensions.h"
 #include "GPU_glew.h"
+#include "GPU_shader.h"
 
 extern GLubyte stipple_quarttone[128]; /* glutil.c, bad level data */
 
diff --git a/source/blender/blenkernel/intern/icons.c b/source/blender/blenkernel/intern/icons.c
index 2171f19..45ebada 100644
--- a/source/blender/blenkernel/intern/icons.c
+++ b/source/blender/blenkernel/intern/icons.c
@@ -55,7 +55,7 @@
 
 #include "BLI_sys_types.h" // for intptr_t support
 
-#include "GPU_extensions.h"
+#include "GPU_texture.h"
 
 #include "IMB_imbuf.h"
 #include "IMB_imbuf_types.h"
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c
index 23bc247..53da38b 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -74,9 +74,9 @@
 #endif
 
 #include "GPU_draw.h"
-#include "GPU_extensions.h"
 #include "GPU_glew.h"
 #include "GPU_buffers.h"
+#include "GPU_shader.h"
 
 #include "CCGSubSurf.h"
 
diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c
index f94f3cd..5268afa 100644
--- a/source/blender/editors/render/render_opengl.c
+++ b/source/blender/editors/render/render_opengl.c
@@ -69,9 +69,9 @@
 #include "RNA_access.h"
 #include "RNA_define.h"
 
-#include "GPU_extensions.h"
 #include "GPU_glew.h"
 #include "GPU_compositing.h"
+#include "GPU_framebuffer.h"
 
 
 #include "render_intern.h"
diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c
index de7a8ed..f6e66ca 100644
--- a/source/blender/editors/space_view3d/drawmesh.c
+++ b/source/blender/editors/space_view3d/drawmesh.c
@@ -60,10 +60,10 @@
 
 #include "UI_resources.h"
 
-#include "GPU_extensions.h"
 #include "GPU_draw.h"
 #include "GPU_material.h"
 #include "GPU_basic_shader.h"
+#include "GPU_shader.h"
 
 #include "RE_engine.h"
 
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index f2240c6..e03f817 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -87,9 +87,9 @@
 #include "BIF_glutil.h"
 
 #include "GPU_draw.h"
-#include "GPU_extensions.h"
 #include "GPU_select.h"
 #include "GPU_basic_shader.h"
+#include "GPU_shader.h"
 
 #include "ED_mesh.h"
 #include "ED_particle.h"
diff --git a/source/blender/editors/space_view3d/drawvolume.c b/source/blender/editors/space_view3d/drawvolume.c
index 3029aae..102bfc5 100644
--- a/source/blender/editors/space_view3d/drawvolume.c
+++ b/source/blender/editors/space_view3d/drawvolume.c
@@ -46,7 +46,8 @@
 
 #include "BIF_gl.h"
 
-#include "GPU_extensions.h"
+#include "GPU_shader.h"
+#include "GPU_texture.h"
 
 #include "view3d_intern.h"  // own include
 
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index a1c2c8c..fa14ca9 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -54,9 +54,9 @@
 #include "ED_space_api.h"
 #include "ED_screen.h"
 
-#include "GPU_extensions.h"
-#include "GPU_material.h"
 #include "GPU_compositing.h"
+#include "GPU_framebuffer.h"
+#include "GPU_material.h"
 
 #include "BIF_gl.h"
 
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index 781c848..5a839c2 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -96,8 +96,8 @@
 #include "UI_resources.h"
 
 #include "GPU_draw.h"
+#include "GPU_framebuffer.h"
 #include "GPU_material.h"
-#include "GPU_extensions.h"
 #include "GPU_compositing.h"
 
 #include "view3d_intern.h"  /* own include */
diff --git a/source/blender/gpu/CMakeLists.txt b/source/blender/gpu/CMakeLists.txt
index 60fa77b..6d3a5d3 100644
--- a/source/blender/gpu/CMakeLists.txt
+++ b/source/blender/gpu/CMakeLists.txt
@@ -46,16 +46,19 @@ set(INC_SYS
 )
 
 set(SRC
+	intern/gpu_basic_shader.c
 	intern/gpu_buffers.c
 	intern/gpu_codegen.c
+	intern/gpu_compositing.c
+	intern/gpu_debug.c
 	intern/gpu_draw.c
 	intern/gpu_extensions.c
+	intern/gpu_framebuffer.c
 	intern/gpu_init_exit.c
 	intern/gpu_material.c
-	intern/gpu_basic_shader.c
 	intern/gpu_select.c
-	intern/gpu_compositing.c
-	intern/gpu_debug.c
+	intern/gpu_shader.c
+	intern/gpu_texture.c
 
 	shaders/gpu_program_smoke_frag.glsl
 	shaders/gpu_program_smoke_color_frag.glsl
@@ -78,16 +81,19 @@ set(SRC
 	shaders/gpu_shader_vsm_store_vert.glsl
 	shaders/gpu_shader_fx_depth_resolve.glsl
 
+	GPU_basic_shader.h
 	GPU_buffers.h
-	GPU_draw.h
+	GPU_compositing.h
 	GPU_debug.h
+	GPU_draw.h
 	GPU_extensions.h
+	GPU_framebuffer.h
 	GPU_glew.h
 	GPU_init_exit.h
 	GPU_material.h
-	GPU_basic_shader.h
 	GPU_select.h
-	GPU_compositing.h
+	GPU_shader.h
+	GPU_texture.h
 	intern/gpu_codegen.h
 	intern/gpu_private.h
 )
diff --git a/source/blender/gpu/GPU_draw.h b/source/blender/gpu/GPU_draw.h
index cb288e9..3e6c26f 100644
--- a/source/blender/gpu/GPU_draw.h
+++ b/source/blender/gpu/GPU_draw.h
@@ -129,7 +129,7 @@ void GPU_set_gpu_mipmapping(int gpu_mipmap);
 /* Image updates and free
  * - these deal with images bound as opengl textures */
 
-void GPU_paint_update_image(struct Image *ima, ImageUser *iuser, int x, int y, int w, int h);
+void GPU_paint_update_image(struct Image *ima, struct ImageUser *iuser, int x, int y, int w, int h);
 void GPU_update_images_framechange(void);
 int GPU_update_image_time(struct Image *ima, double time);
 int GPU_verify_image(struct Image *ima, struct ImageUser *iuser, int tftile, bool compare, bool mipmap, bool is_data);
diff --git a/source/blender/gpu/GPU_extensions.h b/source/blender/gpu/GPU_extensions.h
index ef582b6..f3be52f 100644
--- a/source/blender/gpu/GPU_extensions.h
+++ b/source/blender/gpu/GPU_extensions.h
@@ -36,25 +36,6 @@
 extern "C" {
 #endif
 
-struct Image;
-struct ImageUser;
-struct PreviewImage;
-	
-struct GPUTexture;
-typedef struct GPUTexture GPUTexture;
-
-struct GPUFrameBuffer;
-typedef struct GPUFrameBuffer GPUFrameBuffer;
-
-struct GPUOffScreen;
-typedef struct GPUOffScreen GPUOffScreen;
-
-struct GPUShader;
-typedef struct GPUShader GPUShader;
-
-struct GPUProgram;
-typedef struct GPUProgram GPUProgram;
-
 /* GPU extensions support */
 
 void GPU_extensions_disable(void);
@@ -65,9 +46,12 @@ bool GPU_full_non_power_of_two_support(void);
 bool GPU_display_list_support(void);
 bool GPU_bicubic_bump_support(void);
 bool GPU_geometry_shader_support(void);
+bool GPU_geometry_shader_support_via_extension(void);
 bool GPU_instanced_drawing_support(void);
 
 int GPU_max_texture_size(void);
+int GPU_max_textures(void);
+int GPU_max_color_texture_samples(void);
 int GPU_color_depth(void);
 void GPU_get_dfdy_factors(float fac[2]);
 
@@ -103,171 +87,6 @@ typedef enum GPUDriverType {
 
 bool GPU_type_matches(GPUDeviceType device, GPUOSType os, GPUDriverType driver);
 
-/* GPU Texture
- * - always returns unsigned char RGBA textures
- * - if texture with non square dimensions is created, depending on the
- *   graphics card capabilities the texture may actually be stored in a
- *   larger texture with power of two dimensions.
- * - can use reference counting:
- *     - reference counter after GPU_texture_create is 1
- *     - GPU_texture_ref increases by one
- *     - GPU_texture_free decreases by one, and frees if 0
- *  - if created with from_blender, will not free the texture
- */
-
-typedef enum GPUHDRType {
-	GPU_HDR_NONE =       0,
-	GPU_HDR_HALF_FLOAT = 1,
-	GPU_HDR_FULL_FLOAT = (1 << 1),
-} GPUHDRType;
-
-GPUTexture *GPU_texture_create_1D(int w, const float *pixels, char err_out[256]);
-GPUTexture *GPU_texture_create_2D(int w, int h, const float *pixels, GPUHDRType hdr, char err_out[256]);
-GPUTexture *GPU_texture_create_3D(int w, int h, int depth, int channels, const float *fpixels);
-GPUTexture *GPU_texture_create_depth(int w, int h, char err_out[256]);
-GPUTexture *GPU_texture_create_vsm_shadow_map(int size, char err_out[256]);
-GPUTexture *GPU_texture_create_2D_procedural(int w, int h, const float *pixels, bool repeat, char err_out[256]);
-GPUTexture *GPU_texture_create_1D_procedural(int w, const float *pixels, char err_out[256]);
-GPUTexture *GPU_texture_create_2D_multisample(int w, int h, const float *pixels, GPUHDRType hdr, int samples, char err_out[256]);
-GPUTexture *GPU_texture_create_depth_multisample(int w, int h, int samples, char err_out[256]);
-GPUTexture *GPU_texture_from_blender(struct Image *ima,
-	struct ImageUser *iuser, bool is_data, double time, int mipmap);
-GPUTexture *GPU_texture_from_preview(struct PreviewImage *prv, int mipmap);
-void GPU_invalid_tex_init(void);
-void GPU_invalid_tex_bind(int mode);
-void GPU_invalid_tex_free(void);
-
-void GPU_texture_free(GPUTexture *tex);
-
-void GPU_texture_ref(GPUTexture *tex);
-
-void GPU_texture_bind(GPUTexture *tex, int n

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list