Changeset View
Changeset View
Standalone View
Standalone View
source/blender/gpu/opengl/gl_shader.cc
| Show First 20 Lines • Show All 1,045 Lines • ▼ Show 20 Lines | |||||
| bool GLShader::transform_feedback_enable(GPUVertBuf *buf_) | bool GLShader::transform_feedback_enable(GPUVertBuf *buf_) | ||||
| { | { | ||||
| if (transform_feedback_type_ == GPU_SHADER_TFB_NONE) { | if (transform_feedback_type_ == GPU_SHADER_TFB_NONE) { | ||||
| return false; | return false; | ||||
| } | } | ||||
| GLVertBuf *buf = static_cast<GLVertBuf *>(unwrap(buf_)); | GLVertBuf *buf = static_cast<GLVertBuf *>(unwrap(buf_)); | ||||
| if (buf->vbo_id_ == 0) { | |||||
| buf->bind(); | |||||
| } | |||||
| BLI_assert(buf->vbo_id_ != 0); | BLI_assert(buf->vbo_id_ != 0); | ||||
| glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0, buf->vbo_id_); | glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0, buf->vbo_id_); | ||||
| switch (transform_feedback_type_) { | switch (transform_feedback_type_) { | ||||
| case GPU_SHADER_TFB_POINTS: | case GPU_SHADER_TFB_POINTS: | ||||
| glBeginTransformFeedback(GL_POINTS); | glBeginTransformFeedback(GL_POINTS); | ||||
| break; | break; | ||||
| ▲ Show 20 Lines • Show All 83 Lines • Show Last 20 Lines | |||||