142 uint16_t fb_attachments_bits =
active_fb->get_color_attachments_bitset();
144 if ((fb_attachments_bits & ~fragment_output_bits) != 0) {
146 msg = msg +
"Shader (" + sh->
name_get() +
") does not write to all frame-buffer (" +
147 active_fb->name_get() +
") color attachments";
149 std::cerr << msg << std::endl;
164 return reinterpret_cast<GPUContext *
>(ctx);
168 return reinterpret_cast<Context *
>(ctx);
172 return reinterpret_cast<const Context *
>(ctx);
#define BLI_assert_msg(a, msg)
virtual void debug_unbind_all_ssbo()=0
Vector< StorageBuf * > printf_buf
Batch * procedural_lines_batch
virtual void debug_group_begin(const char *, int)
virtual void debug_capture_scope_end(void *scope)=0
virtual void memory_statistics_get(int *r_total_mem, int *r_free_mem)=0
Batch * procedural_triangles_batch
int shader_builtin_srgb_transform
virtual void debug_unbind_all_ubo()=0
StateManager * state_manager
GPUMatrixState * matrix_state
bool shader_builtin_srgb_is_dirty
virtual bool debug_capture_scope_begin(void *scope)=0
bool is_active_on_thread()
virtual void * debug_capture_scope_create(const char *name)=0
Batch * procedural_triangles_batch_get()
TexturePool * texture_pool
static int context_counter
FrameBuffer * front_right
VertBuf * dummy_vbo_get()
void assert_framebuffer_shader_compatibility(Shader *sh)
virtual void debug_capture_end()=0
Batch * procedural_triangle_strips_batch_get()
virtual bool debug_capture_begin(const char *title)=0
Batch * procedural_points_batch
virtual void activate()=0
Batch * procedural_triangle_strips_batch
virtual void end_frame()=0
Batch * procedural_lines_batch_get()
virtual void begin_frame()=0
Batch * procedural_points_batch_get()
virtual void debug_group_end()
virtual void deactivate()=0
uint16_t fragment_output_bits
StringRefNull name_get() const
static Context * unwrap(GPUContext *ctx)
static GPUContext * wrap(Context *ctx)
Vector< StringRef > DebugStack