|
Blender V5.0
|
#include "GPU_texture.hh"Go to the source code of this file.
Classes | |
| struct | IMMDrawPixelsTexState |
Namespaces | |
| namespace | blender |
| namespace | blender::gpu |
Functions | |
| IMMDrawPixelsTexState | immDrawPixelsTexSetup (int builtin) |
| void | immDrawPixelsTexScaledFullSize (const IMMDrawPixelsTexState *state, float x, float y, int img_w, int img_h, blender::gpu::TextureFormat gpu_format, bool use_filter, const void *rect, float scaleX, float scaleY, float xzoom, float yzoom, const float color[4]) |
| void | immDrawPixelsTexTiled (IMMDrawPixelsTexState *state, float x, float y, int img_w, int img_h, blender::gpu::TextureFormat gpu_format, bool use_filter, const void *rect, float xzoom, float yzoom, const float color[4]) |
| void | immDrawPixelsTexTiled_clipping (IMMDrawPixelsTexState *state, float x, float y, int img_w, int img_h, blender::gpu::TextureFormat gpu_format, bool use_filter, const void *rect, float clip_min_x, float clip_min_y, float clip_max_x, float clip_max_y, float xzoom, float yzoom, const float color[4]) |
| void | immDrawPixelsTexTiled_scaling (IMMDrawPixelsTexState *state, float x, float y, int img_w, int img_h, blender::gpu::TextureFormat gpu_format, bool use_filter, const void *rect, float scaleX, float scaleY, float xzoom, float yzoom, const float color[4]) |
| void | immDrawPixelsTexTiled_scaling_clipping (IMMDrawPixelsTexState *state, float x, float y, int img_w, int img_h, blender::gpu::TextureFormat gpu_format, bool use_filter, const void *rect, float scaleX, float scaleY, float clip_min_x, float clip_min_y, float clip_max_x, float clip_max_y, float xzoom, float yzoom, const float color[4]) |
| void | ED_draw_imbuf (ImBuf *ibuf, float x, float y, bool use_filter, const ColorManagedViewSettings *view_settings, const ColorManagedDisplaySettings *display_settings, float zoom_x, float zoom_y) |
| void | ED_draw_imbuf_clipping (ImBuf *ibuf, float x, float y, bool use_filter, const ColorManagedViewSettings *view_settings, const ColorManagedDisplaySettings *display_settings, float clip_min_x, float clip_min_y, float clip_max_x, float clip_max_y, float zoom_x, float zoom_y) |
| void | ED_draw_imbuf_ctx (const bContext *C, ImBuf *ibuf, float x, float y, bool use_filter, float zoom_x, float zoom_y) |
| void | ED_draw_imbuf_ctx_clipping (const bContext *C, ImBuf *ibuf, float x, float y, bool use_filter, float clip_min_x, float clip_min_y, float clip_max_x, float clip_max_y, float zoom_x, float zoom_y) |
| int | ED_draw_imbuf_method (const ImBuf *ibuf) |
| void | immDrawBorderCorners (unsigned int pos, const rcti *border, float zoomx, float zoomy) |
| void ED_draw_imbuf | ( | ImBuf * | ibuf, |
| float | x, | ||
| float | y, | ||
| bool | use_filter, | ||
| const ColorManagedViewSettings * | view_settings, | ||
| const ColorManagedDisplaySettings * | display_settings, | ||
| float | zoom_x, | ||
| float | zoom_y ) |
Definition at line 559 of file glutil.cc.
References ED_draw_imbuf_clipping(), x, and y.
Referenced by ed_preview_draw_rect(), and blender::ed::space_node::node_draw_preview().
| void ED_draw_imbuf_clipping | ( | ImBuf * | ibuf, |
| float | x, | ||
| float | y, | ||
| bool | use_filter, | ||
| const ColorManagedViewSettings * | view_settings, | ||
| const ColorManagedDisplaySettings * | display_settings, | ||
| float | clip_min_x, | ||
| float | clip_min_y, | ||
| float | clip_max_x, | ||
| float | clip_max_y, | ||
| float | zoom_x, | ||
| float | zoom_y ) |
Draw given image buffer on a screen using GLSL for display transform.
Definition at line 410 of file glutil.cc.
References BLI_assert_msg, ImBuf::byte_buffer, ImBuf::channels, ImBufByteBuffer::colorspace, ImBufFloatBuffer::colorspace, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::dither, ED_draw_imbuf_method(), ImBuf::float_buffer, GPU_SHADER_3D_IMAGE_COLOR, IMAGE_DRAW_METHOD_GLSL, IMB_colormanagement_finish_glsl_draw(), IMB_colormanagement_setup_glsl_draw(), IMB_colormanagement_setup_glsl_draw_from_space(), IMB_display_buffer_acquire(), IMB_display_buffer_release(), immDrawPixelsTexSetup(), immDrawPixelsTexSetupAttributes(), immDrawPixelsTexTiled_clipping(), blender::gpu::Invalid, state, ImBuf::x, x, ImBuf::y, and y.
Referenced by ED_draw_imbuf(), and ED_draw_imbuf_ctx_clipping().
| void ED_draw_imbuf_ctx | ( | const bContext * | C, |
| ImBuf * | ibuf, | ||
| float | x, | ||
| float | y, | ||
| bool | use_filter, | ||
| float | zoom_x, | ||
| float | zoom_y ) |
Definition at line 613 of file glutil.cc.
References C, ED_draw_imbuf_ctx_clipping(), x, and y.
Referenced by draw_movieclip_buffer().
| void ED_draw_imbuf_ctx_clipping | ( | const bContext * | C, |
| ImBuf * | ibuf, | ||
| float | x, | ||
| float | y, | ||
| bool | use_filter, | ||
| float | clip_min_x, | ||
| float | clip_min_y, | ||
| float | clip_max_x, | ||
| float | clip_max_y, | ||
| float | zoom_x, | ||
| float | zoom_y ) |
Definition at line 582 of file glutil.cc.
References C, ED_draw_imbuf_clipping(), IMB_colormanagement_display_settings_from_ctx(), x, and y.
Referenced by ED_draw_imbuf_ctx().
| int ED_draw_imbuf_method | ( | const ImBuf * | ibuf | ) |
Definition at line 619 of file glutil.cc.
References ImBuf::channels, ImBufFloatBuffer::data, ImBuf::float_buffer, IMAGE_DRAW_METHOD_2DTEXTURE, IMAGE_DRAW_METHOD_AUTO, IMAGE_DRAW_METHOD_GLSL, size(), U, ImBuf::x, and ImBuf::y.
Referenced by ED_draw_imbuf_clipping(), image_rect_update(), and ocio_transform_ibuf().
Don't move to GPU_immediate_util.hh because this uses user-preferences and isn't very low level.
Definition at line 633 of file glutil.cc.
References GPU_PRIM_LINE_STRIP, immBegin(), immEnd(), immVertex2f(), min_ff(), pos, UI_SCALE_FAC, rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.
Referenced by blender::ed::space_node::draw_nodespace_back_pix(), and draw_render_info().
| void immDrawPixelsTexScaledFullSize | ( | const IMMDrawPixelsTexState * | state, |
| float | x, | ||
| float | y, | ||
| int | img_w, | ||
| int | img_h, | ||
| blender::gpu::TextureFormat | gpu_format, | ||
| bool | use_filter, | ||
| const void * | rect, | ||
| float | scaleX, | ||
| float | scaleY, | ||
| float | xzoom, | ||
| float | yzoom, | ||
| const float | color[4] ) |
Unlike the immDrawPixelsTexTiled functions, this doesn't do tiled drawing, but draws into a full texture.
Use the currently bound shader.
Use immDrawPixelsTexSetup to bind the shader you want before calling #immDrawPixelsTex.
If using a special shader double check it uses the same attributes "pos" "texCoord" and uniform "image".
If color is NULL then use white by default
Unless state->do_shader_unbind is explicitly set to false, the shader is unbound when finished.
Definition at line 51 of file glutil.cc.
References ELEM, GPU_DATA_FLOAT, GPU_DATA_UBYTE, GPU_PRIM_TRI_FAN, GPU_SAMPLER_EXTEND_MODE_EXTEND, GPU_shader_get_uniform(), GPU_texture_bind(), GPU_texture_create_2d(), GPU_texture_extend_mode(), GPU_texture_filter_mode(), GPU_texture_free(), GPU_texture_mipmap_mode(), GPU_texture_unbind(), GPU_texture_update(), GPU_texture_update_mipmap_chain(), GPU_TEXTURE_USAGE_SHADER_READ, immAttr2f(), immBegin(), immEnd(), immUnbindProgram(), immUniformColor4fv(), immVertex2f(), pos, state, x, and y.
Referenced by icon_draw_rect(), and ui_tooltip_region_draw_cb().
| IMMDrawPixelsTexState immDrawPixelsTexSetup | ( | int | builtin | ) |
To be used before calling #immDrawPixelsTex Default shader is #GPU_SHADER_2D_IMAGE_COLOR You can still set uniforms with: GPU_shader_uniform_*(shader, "name", value);
Definition at line 37 of file glutil.cc.
References GPU_shader_get_builtin_shader(), immBindBuiltinProgram(), immDrawPixelsTexSetupAttributes(), and state.
Referenced by draw_filled_lasso(), ED_draw_imbuf_clipping(), ED_mask_draw_region(), file_draw_preview(), icon_draw_rect(), ui_draw_but_IMAGE(), ui_draw_but_TRACKPREVIEW(), ui_tooltip_region_draw_cb(), and wm_drag_draw_icon().
| void immDrawPixelsTexTiled | ( | IMMDrawPixelsTexState * | state, |
| float | x, | ||
| float | y, | ||
| int | img_w, | ||
| int | img_h, | ||
| blender::gpu::TextureFormat | gpu_format, | ||
| bool | use_filter, | ||
| const void * | rect, | ||
| float | xzoom, | ||
| float | yzoom, | ||
| const float | color[4] ) |
#immDrawPixelsTex - Functions like a limited #glDrawPixels, but actually draws the image using textures, which can be tremendously faster on low-end cards, and also avoids problems with the raster position being clipped when off-screen. Pixel unpacking parameters and the #glPixelZoom values are not respected.
Definition at line 342 of file glutil.cc.
References immDrawPixelsTexTiled_scaling_clipping(), state, x, and y.
Referenced by draw_filled_lasso(), ED_mask_draw_region(), ui_draw_but_IMAGE(), and ui_draw_but_TRACKPREVIEW().
| void immDrawPixelsTexTiled_clipping | ( | IMMDrawPixelsTexState * | state, |
| float | x, | ||
| float | y, | ||
| int | img_w, | ||
| int | img_h, | ||
| blender::gpu::TextureFormat | gpu_format, | ||
| bool | use_filter, | ||
| const void * | rect, | ||
| float | clip_min_x, | ||
| float | clip_min_y, | ||
| float | clip_max_x, | ||
| float | clip_max_y, | ||
| float | xzoom, | ||
| float | yzoom, | ||
| const float | color[4] ) |
Definition at line 373 of file glutil.cc.
References immDrawPixelsTexTiled_scaling_clipping(), state, x, and y.
Referenced by ED_draw_imbuf_clipping().
| void immDrawPixelsTexTiled_scaling | ( | IMMDrawPixelsTexState * | state, |
| float | x, | ||
| float | y, | ||
| int | img_w, | ||
| int | img_h, | ||
| blender::gpu::TextureFormat | gpu_format, | ||
| bool | use_filter, | ||
| const void * | rect, | ||
| float | scaleX, | ||
| float | scaleY, | ||
| float | xzoom, | ||
| float | yzoom, | ||
| const float | color[4] ) |
Definition at line 309 of file glutil.cc.
References immDrawPixelsTexTiled_scaling_clipping(), state, x, and y.
Referenced by file_draw_preview(), and wm_drag_draw_icon().
| void immDrawPixelsTexTiled_scaling_clipping | ( | IMMDrawPixelsTexState * | state, |
| float | x, | ||
| float | y, | ||
| int | img_w, | ||
| int | img_h, | ||
| blender::gpu::TextureFormat | gpu_format, | ||
| bool | use_filter, | ||
| const void * | rect, | ||
| float | scaleX, | ||
| float | scaleY, | ||
| float | clip_min_x, | ||
| float | clip_min_y, | ||
| float | clip_max_x, | ||
| float | clip_max_y, | ||
| float | xzoom, | ||
| float | yzoom, | ||
| const float | color[4] ) |
Use the currently bound shader.
Use immDrawPixelsTexSetup to bind the shader you want before calling #immDrawPixelsTex.
If using a special shader double check it uses the same attributes "pos" "texCoord" and uniform "image".
If color is NULL then use white by default
Unless state->do_shader_unbind is explicitly set to false, the shader is unbound when finished.
Definition at line 125 of file glutil.cc.
References BLI_assert_msg, DATA, data, ELEM, float, GPU_backend_get_type(), GPU_BACKEND_METAL, GPU_BACKEND_VULKAN, GPU_DATA_FLOAT, GPU_DATA_UBYTE, GPU_PRIM_TRI_FAN, GPU_SAMPLER_EXTEND_MODE_EXTEND, GPU_shader_get_uniform(), GPU_texture_bind(), GPU_texture_create_2d(), GPU_texture_extend_mode(), GPU_texture_filter_mode(), GPU_texture_free(), GPU_texture_unbind(), GPU_texture_update_sub(), GPU_TEXTURE_USAGE_SHADER_READ, GPU_unpack_row_length_set(), immAttr2f(), immBegin(), immEnd(), immVertex2f(), left, pos, state, top, UNPACK2, x, and y.
Referenced by immDrawPixelsTexTiled(), immDrawPixelsTexTiled_clipping(), and immDrawPixelsTexTiled_scaling().