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:
authorSergey Sharybin <sergey.vfx@gmail.com>2012-08-23 20:14:52 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2012-08-23 20:14:52 +0400
commitc9d5f32270b70f8951f738e63da11b54685f8899 (patch)
treedebf5ab7560da184c295ae55991c13a6e8d97c39 /source/blender/editors/space_sequencer/sequencer_draw.c
parentf4ab3b9d8b613931956439a27044d4bae35ad3cd (diff)
Sequencer: display color sample information when mouse is holded down
Behaves in exactly the same way as image editor's color sampling. Would be nice to display color managed color too, but that's for tomato branch.
Diffstat (limited to 'source/blender/editors/space_sequencer/sequencer_draw.c')
-rw-r--r--source/blender/editors/space_sequencer/sequencer_draw.c45
1 files changed, 36 insertions, 9 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c
index 25514b3168b..d6a2b0a001e 100644
--- a/source/blender/editors/space_sequencer/sequencer_draw.c
+++ b/source/blender/editors/space_sequencer/sequencer_draw.c
@@ -811,6 +811,41 @@ static void UNUSED_FUNCTION(set_special_seq_update) (int val)
else special_seq_update = NULL;
}
+ImBuf *sequencer_ibuf_get(struct Main *bmain, Scene *scene, SpaceSeq *sseq, int cfra, int frame_ofs)
+{
+ SeqRenderData context;
+ ImBuf *ibuf;
+ int rectx, recty;
+ float render_size = 0.0;
+ float proxy_size = 100.0;
+
+ render_size = sseq->render_size;
+ if (render_size == 0) {
+ render_size = scene->r.size;
+ }
+ else {
+ proxy_size = render_size;
+ }
+
+ if (render_size < 0) {
+ return NULL;
+ }
+
+ rectx = (render_size * (float)scene->r.xsch) / 100.0f + 0.5f;
+ recty = (render_size * (float)scene->r.ysch) / 100.0f + 0.5f;
+
+ context = BKE_sequencer_new_render_data(bmain, scene, rectx, recty, proxy_size);
+
+ if (special_seq_update)
+ ibuf = BKE_sequencer_give_ibuf_direct(context, cfra + frame_ofs, special_seq_update);
+ else if (!U.prefetchframes) // XXX || (G.f & G_PLAYANIM) == 0) {
+ ibuf = BKE_sequencer_give_ibuf(context, cfra + frame_ofs, sseq->chanshown);
+ else
+ ibuf = BKE_sequencer_give_ibuf_threaded(context, cfra + frame_ofs, sseq->chanshown);
+
+ return ibuf;
+}
+
void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq, int cfra, int frame_ofs, int draw_overlay)
{
struct Main *bmain = CTX_data_main(C);
@@ -824,7 +859,6 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq
float col[3];
GLuint texid;
GLuint last_texid;
- SeqRenderData context;
render_size = sseq->render_size;
if (render_size == 0) {
@@ -865,14 +899,7 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq
if (G.is_rendering)
return;
- context = BKE_sequencer_new_render_data(bmain, scene, rectx, recty, proxy_size);
-
- if (special_seq_update)
- ibuf = BKE_sequencer_give_ibuf_direct(context, cfra + frame_ofs, special_seq_update);
- else if (!U.prefetchframes) // XXX || (G.f & G_PLAYANIM) == 0) {
- ibuf = BKE_sequencer_give_ibuf(context, cfra + frame_ofs, sseq->chanshown);
- else
- ibuf = BKE_sequencer_give_ibuf_threaded(context, cfra + frame_ofs, sseq->chanshown);
+ ibuf = sequencer_ibuf_get(bmain, scene, sseq, cfra, frame_ofs);
if (ibuf == NULL)
return;