Blender V4.3
sequencer_preview_draw.cc File Reference
#include <cmath>
#include <cstring>
#include "BLF_api.hh"
#include "BLI_blenlib.h"
#include "BLI_math_rotation.h"
#include "BLI_utildefines.h"
#include "IMB_imbuf_types.hh"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
#include "BKE_context.hh"
#include "BKE_global.hh"
#include "BKE_scene.hh"
#include "IMB_colormanagement.hh"
#include "IMB_imbuf.hh"
#include "GPU_framebuffer.hh"
#include "GPU_immediate.hh"
#include "GPU_immediate_util.hh"
#include "GPU_matrix.hh"
#include "GPU_viewport.hh"
#include "ED_gpencil_legacy.hh"
#include "ED_screen.hh"
#include "ED_sequencer.hh"
#include "ED_space_api.hh"
#include "ED_util.hh"
#include "BIF_glutil.hh"
#include "SEQ_channels.hh"
#include "SEQ_iterator.hh"
#include "SEQ_prefetch.hh"
#include "SEQ_proxy.hh"
#include "SEQ_render.hh"
#include "SEQ_select.hh"
#include "SEQ_sequencer.hh"
#include "SEQ_time.hh"
#include "SEQ_transform.hh"
#include "UI_interface.hh"
#include "UI_resources.hh"
#include "UI_view2d.hh"
#include "WM_api.hh"
#include "WM_types.hh"
#include "sequencer_intern.hh"
#include "sequencer_quads_batch.hh"
#include "sequencer_scopes.hh"

Go to the source code of this file.

Functions

void sequencer_special_update_set (Sequence *seq)
 
SequenceED_sequencer_special_preview_get ()
 
void ED_sequencer_special_preview_set (bContext *C, const int mval[2])
 
void ED_sequencer_special_preview_clear ()
 
ImBufsequencer_ibuf_get (const bContext *C, int timeline_frame, int frame_ofs, const char *viewname)
 
static ImBufsequencer_make_scope (Scene *scene, ImBuf *ibuf, ImBuf *(*make_scope_fn)(const ImBuf *ibuf))
 
static void sequencer_display_size (Scene *scene, float r_viewrect[2])
 
static void sequencer_draw_gpencil_overlay (const bContext *C)
 
static void sequencer_draw_borders_overlay (const SpaceSeq *sseq, const View2D *v2d, const Scene *scene)
 
static void seq_prefetch_wm_notify (const bContext *C, Scene *scene)
 
static void * sequencer_OCIO_transform_ibuf (const bContext *C, ImBuf *ibuf, bool *r_glsl_used, eGPUTextureFormat *r_format, eGPUDataFormat *r_data, void **r_buffer_cache_handle)
 
static void sequencer_stop_running_jobs (const bContext *C, Scene *scene)
 
static void sequencer_preview_clear ()
 
static void sequencer_preview_get_rect (rctf *preview, Scene *scene, ARegion *region, SpaceSeq *sseq, bool draw_overlay, bool draw_backdrop)
 
static void sequencer_draw_display_buffer (const bContext *C, Scene *scene, ARegion *region, SpaceSeq *sseq, ImBuf *ibuf, bool draw_overlay, bool draw_backdrop)
 
static void draw_histogram (ARegion *region, const blender::ed::seq::ScopeHistogram &hist, SeqQuadsBatch &quads, const rctf &area)
 
static blender::float2 rgb_to_uv (const blender::float3 &rgb)
 
static void draw_waveform_graticule (ARegion *region, SeqQuadsBatch &quads, const rctf &area)
 
static void draw_vectorscope_graticule (ARegion *region, SeqQuadsBatch &quads, const rctf &area)
 
static void sequencer_draw_scopes (Scene *scene, ARegion *region, SpaceSeq *sseq)
 
static bool sequencer_calc_scopes (Scene *scene, SpaceSeq *sseq, ImBuf *ibuf, bool draw_backdrop)
 
bool sequencer_draw_get_transform_preview (SpaceSeq *sseq, Scene *scene)
 
int sequencer_draw_get_transform_preview_frame (Scene *scene)
 
static void seq_draw_image_origin_and_outline (const bContext *C, Sequence *seq, bool is_active_seq)
 
void sequencer_draw_preview (const bContext *C, Scene *scene, ARegion *region, SpaceSeq *sseq, int timeline_frame, int offset, bool draw_overlay, bool draw_backdrop)
 

Variables

static Sequencespecial_seq_update = nullptr
 

Function Documentation

◆ draw_histogram()

◆ draw_vectorscope_graticule()

◆ draw_waveform_graticule()

static void draw_waveform_graticule ( ARegion * region,
SeqQuadsBatch & quads,
const rctf & area )
static

◆ ED_sequencer_special_preview_clear()

void ED_sequencer_special_preview_clear ( )

Definition at line 87 of file sequencer_preview_draw.cc.

References sequencer_special_update_set().

Referenced by change_frame_seq_preview_end().

◆ ED_sequencer_special_preview_get()

Sequence * ED_sequencer_special_preview_get ( )

◆ ED_sequencer_special_preview_set()

void ED_sequencer_special_preview_set ( bContext * C,
const int mval[2] )

◆ rgb_to_uv()

static blender::float2 rgb_to_uv ( const blender::float3 & rgb)
static

Definition at line 604 of file sequencer_preview_draw.cc.

References BLI_YUV_ITU_BT709, rgb_to_yuv(), v, and y.

Referenced by draw_vectorscope_graticule().

◆ seq_draw_image_origin_and_outline()

◆ seq_prefetch_wm_notify()

static void seq_prefetch_wm_notify ( const bContext * C,
Scene * scene )
static

◆ sequencer_calc_scopes()

◆ sequencer_display_size()

static void sequencer_display_size ( Scene * scene,
float r_viewrect[2] )
static

Definition at line 188 of file sequencer_preview_draw.cc.

References float.

Referenced by sequencer_draw_preview(), and sequencer_preview_get_rect().

◆ sequencer_draw_borders_overlay()

◆ sequencer_draw_display_buffer()

◆ sequencer_draw_get_transform_preview()

bool sequencer_draw_get_transform_preview ( SpaceSeq * sseq,
Scene * scene )

◆ sequencer_draw_get_transform_preview_frame()

◆ sequencer_draw_gpencil_overlay()

static void sequencer_draw_gpencil_overlay ( const bContext * C)
static

◆ sequencer_draw_preview()

void sequencer_draw_preview ( const bContext * C,
Scene * scene,
ARegion * region,
SpaceSeq * sseq,
int timeline_frame,
int offset,
bool draw_overlay,
bool draw_backdrop )

Definition at line 1080 of file sequencer_preview_draw.cc.

References draw_backdrop(), ED_region_draw_cb_draw(), ED_region_image_metadata_draw(), ED_space_sequencer_check_show_imbuf(), SequencerPreviewOverlay::flag, SpaceSeq::flag, G, SpaceSeq::gpd, GPU_DEPTH_NONE, GPU_depth_test(), GPU_framebuffer_bind(), GPU_framebuffer_bind_no_srgb(), GPU_viewport_framebuffer_overlay_get(), IMB_freeImBuf(), imm_draw_box_checker_2d(), SpaceSeq::multiview_eye, SpaceSeq::overlay_frame_type, SpaceSeq::preview_overlay, REGION_DRAW_POST_VIEW, SpaceSeq::render_size, SEQ_channels_displayed_get(), seq_draw_image_origin_and_outline(), SEQ_editing_get(), SEQ_OVERLAY_FRAME_TYPE_REFERENCE, seq_prefetch_wm_notify(), SEQ_PREVIEW_SHOW_GPENCIL, SEQ_PREVIEW_SHOW_METADATA, SEQ_query_rendered_strips(), SEQ_RENDER_SIZE_NONE, SEQ_select_active_get(), SEQ_SHOW_OVERLAY, SEQ_USE_ALPHA, Editing::seqbasep, sequencer_calc_scopes(), sequencer_display_size(), sequencer_draw_borders_overlay(), sequencer_draw_display_buffer(), sequencer_draw_get_transform_preview(), sequencer_draw_get_transform_preview_frame(), sequencer_draw_gpencil_overlay(), sequencer_draw_scopes(), sequencer_ibuf_get(), sequencer_preview_clear(), sequencer_stop_running_jobs(), STEREO_LEFT_NAME, STEREO_RIGHT_NAME, View2D::tot, UI_view2d_curRect_validate(), UI_view2d_totRect_set(), UI_view2d_view_ortho(), UI_view2d_view_restore(), WM_draw_region_get_viewport(), rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

Referenced by draw_timeline_backdrop(), and sequencer_preview_region_draw().

◆ sequencer_draw_scopes()

static void sequencer_draw_scopes ( Scene * scene,
ARegion * region,
SpaceSeq * sseq )
static

Definition at line 791 of file sequencer_preview_draw.cc.

References BLI_rctf_init(), BLI_rctf_resize_x(), BLI_rctf_resize_y(), BLI_rctf_size_x(), BLI_rctf_size_y(), ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, draw_histogram(), draw_vectorscope_graticule(), draw_waveform_graticule(), ELEM, SpaceSeq::flag, ImBuf::float_buffer, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_COMP_F32, GPU_DATA_UBYTE, GPU_FETCH_FLOAT, GPU_PRIM_TRI_FAN, GPU_RGBA8, GPU_SAMPLER_EXTEND_MODE_CLAMP_TO_BORDER, GPU_SHADER_3D_IMAGE_COLOR, GPU_SHADER_3D_UNIFORM_COLOR, GPU_texture_bind(), GPU_texture_create_2d(), GPU_texture_extend_mode(), GPU_texture_filter_mode(), GPU_texture_free(), GPU_texture_unbind(), GPU_texture_update(), GPU_TEXTURE_USAGE_ATTACHMENT, GPU_TEXTURE_USAGE_SHADER_READ, GPU_vertformat_attr_add(), blender::ed::seq::SeqScopes::histogram, IMB_rect_from_float(), immAttr2f(), immBegin(), immBindBuiltinProgram(), immEnd(), immRectf(), immUnbindProgram(), immUniformColor3f(), immUniformColor4ubv(), immVertex2f(), immVertexFormat(), SpaceSeq::mainb, pos, SpaceSeq::runtime, blender::ed::seq::SeqScopes::sep_waveform_ibuf, SEQ_DRAW_IMG_HISTOGRAM, SEQ_DRAW_IMG_IMBUF, SEQ_DRAW_IMG_RGBPARADE, SEQ_DRAW_IMG_VECTORSCOPE, SEQ_DRAW_IMG_WAVEFORM, SEQ_USE_ALPHA, sequencer_preview_get_rect(), blender::ed::seq::SeqScopes::vector_ibuf, blender::ed::seq::SeqScopes::waveform_ibuf, ImBuf::x, rctf::xmax, rctf::xmin, ImBuf::y, rctf::ymax, rctf::ymin, and blender::ed::seq::SeqScopes::zebra_ibuf.

Referenced by sequencer_draw_preview().

◆ sequencer_ibuf_get()

◆ sequencer_make_scope()

static ImBuf * sequencer_make_scope ( Scene * scene,
ImBuf * ibuf,
ImBuf *(* make_scope_fn )(const ImBuf *ibuf) )
static

◆ sequencer_OCIO_transform_ibuf()

◆ sequencer_preview_clear()

static void sequencer_preview_clear ( )
static

Definition at line 384 of file sequencer_preview_draw.cc.

References TH_SEQ_PREVIEW, and UI_ThemeClearColor().

Referenced by sequencer_draw_preview().

◆ sequencer_preview_get_rect()

static void sequencer_preview_get_rect ( rctf * preview,
Scene * scene,
ARegion * region,
SpaceSeq * sseq,
bool draw_overlay,
bool draw_backdrop )
static

◆ sequencer_special_update_set()

void sequencer_special_update_set ( Sequence * seq)

◆ sequencer_stop_running_jobs()

static void sequencer_stop_running_jobs ( const bContext * C,
Scene * scene )
static

Variable Documentation

◆ special_seq_update

Sequence* special_seq_update = nullptr
static