Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2018-05-17 21:09:03 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2018-05-17 21:09:03 +0300
commitd39fdda20b10028e183facaaebb76af438759762 (patch)
tree7732de84cc3a5a28781bba207234fe4100bfc2e9 /source/blender/gpu/GPU_shader.h
parent94feea22e6ecc1a45dfc578606cad454507f6ab2 (diff)
parent9c5682af879021ed530dca0cfd6126f3031cc762 (diff)
Merge branch 'blender2.8' into temp-unified-collectionstemp-unified-collections
Diffstat (limited to 'source/blender/gpu/GPU_shader.h')
-rw-r--r--source/blender/gpu/GPU_shader.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/source/blender/gpu/GPU_shader.h b/source/blender/gpu/GPU_shader.h
index 2a672873d86..baaa23c2398 100644
--- a/source/blender/gpu/GPU_shader.h
+++ b/source/blender/gpu/GPU_shader.h
@@ -50,6 +50,13 @@ enum {
GPU_SHADER_FLAGS_NEW_SHADING = (1 << 1),
};
+typedef enum GPUShaderTFBType {
+ GPU_SHADER_TFB_NONE = 0, /* Transform feedback unsupported. */
+ GPU_SHADER_TFB_POINTS = 1,
+ GPU_SHADER_TFB_LINES = 2,
+ GPU_SHADER_TFB_TRIANGLES = 3,
+} GPUShaderTFBType;
+
GPUShader *GPU_shader_create(
const char *vertexcode,
const char *fragcode,
@@ -62,12 +69,19 @@ GPUShader *GPU_shader_create_ex(
const char *geocode,
const char *libcode,
const char *defines,
- const int flags);
+ const int flags,
+ const GPUShaderTFBType tf_type,
+ const char **tf_names,
+ const int tf_count);
void GPU_shader_free(GPUShader *shader);
void GPU_shader_bind(GPUShader *shader);
void GPU_shader_unbind(void);
+/* Returns true if transform feedback was succesfully enabled. */
+bool GPU_shader_transform_feedback_enable(GPUShader *shader, unsigned int vbo_id);
+void GPU_shader_transform_feedback_disable(GPUShader *shader);
+
int GPU_shader_get_program(GPUShader *shader);
void *GPU_shader_get_interface(GPUShader *shader);