[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55603] trunk/blender/source/blender/ editors/space_sequencer: Bug fix - own collection.
Ton Roosendaal
ton at blender.org
Tue Mar 26 18:49:57 CET 2013
Revision: 55603
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55603
Author: ton
Date: 2013-03-26 17:49:57 +0000 (Tue, 26 Mar 2013)
Log Message:
-----------
Bug fix - own collection.
- Scopes in Sequencer were not drawing OK (drawing code assumed alpha)
- Histogram in Sequencer now uses same formula to quantify R G B as the
other histogram in Blender (per channel).
I seriously thought of dropping this, and add the same sidebar here as we
have for Image window. However, what stops me is that current code is
very optimized, and has OMP hints.
Will check instead on cleaner drawing here now.
Modified Paths:
--------------
trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_scopes.c
Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c 2013-03-26 15:52:43 UTC (rev 55602)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c 2013-03-26 17:49:57 UTC (rev 55603)
@@ -1061,9 +1061,12 @@
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, ibuf->x, ibuf->y, 0, GL_RGBA, GL_UNSIGNED_BYTE, display_buffer);
- if (sseq->flag & SEQ_USE_ALPHA) {
- glEnable(GL_BLEND);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ /* only draw alpha for main buffer */
+ if (sseq->mainb == SEQ_DRAW_IMG_IMBUF) {
+ if (sseq->flag & SEQ_USE_ALPHA) {
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
}
glBegin(GL_QUADS);
Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_scopes.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_scopes.c 2013-03-26 15:52:43 UTC (rev 55602)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_scopes.c 2013-03-26 17:49:57 UTC (rev 55603)
@@ -107,20 +107,20 @@
for (x = 0; x < w; x++) {
unsigned char *p = tgt + 4 * x;
- p[1] = p[3] = 255.0;
- p[4 * w + 1] = p[4 * w + 3] = 255.0;
+ p[1] = p[3] = 155;
+ p[4 * w + 1] = p[4 * w + 3] = 155;
p = tgt + 4 * (w * (h - 1) + x);
- p[1] = p[3] = 255.0;
- p[-4 * w + 1] = p[-4 * w + 3] = 255.0;
+ p[1] = p[3] = 155;
+ p[-4 * w + 1] = p[-4 * w + 3] = 155;
}
for (y = 0; y < h; y++) {
unsigned char *p = tgt + 4 * w * y;
- p[1] = p[3] = 255.0;
- p[4 + 1] = p[4 + 3] = 255.0;
+ p[1] = p[3] = 155;
+ p[4 + 1] = p[4 + 3] = 155;
p = tgt + 4 * (w * y + w - 1);
- p[1] = p[3] = 255.0;
- p[-4 + 1] = p[-4 + 3] = 255.0;
+ p[1] = p[3] = 155;
+ p[-4 + 1] = p[-4 + 3] = 155;
}
}
@@ -156,7 +156,8 @@
unsigned char wtable[256];
wform_put_grid(tgt, w, h);
-
+ wform_put_border(tgt, w, h);
+
for (x = 0; x < 256; x++) {
wtable[x] = (unsigned char) (pow(((float) x + 1) / 256, waveform_gamma) * 255);
}
@@ -181,8 +182,6 @@
}
}
- wform_put_border(tgt, w, h);
-
return rval;
}
@@ -454,8 +453,8 @@
static ImBuf *make_histogram_view_from_ibuf_byte(ImBuf *ibuf)
{
ImBuf *rval = IMB_allocImBuf(515, 128, 32, IB_rect);
- int c, x, y;
- unsigned int n;
+ int x, y;
+ unsigned int nr, ng, nb;
unsigned char *src = (unsigned char *) ibuf->rect;
unsigned int bins[3][HIS_STEPS];
@@ -487,20 +486,29 @@
}
}
- n = 0;
- for (c = 0; c < 3; c++) {
- for (x = 0; x < HIS_STEPS; x++) {
- if (bins[c][x] > n) {
- n = bins[c][x];
- }
- }
+ nr = nb = ng = 0;
+ for (x = 0; x < HIS_STEPS; x++) {
+ if (bins[0][x] > nr)
+ nr = bins[0][x];
+ if (bins[1][x] > ng)
+ ng = bins[1][x];
+ if (bins[2][x] > nb)
+ nb = bins[2][x];
}
- for (c = 0; c < 3; c++) {
- for (x = 0; x < HIS_STEPS; x++) {
- draw_histogram_bar(rval, x * 2 + 1, ((float) bins[c][x]) / n, c);
- draw_histogram_bar(rval, x * 2 + 2, ((float) bins[c][x]) / n, c);
+ for (x = 0; x < HIS_STEPS; x++) {
+ if (nr) {
+ draw_histogram_bar(rval, x * 2 + 1, ((float) bins[0][x]) / nr, 0);
+ draw_histogram_bar(rval, x * 2 + 2, ((float) bins[0][x]) / nr, 0);
}
+ if (ng) {
+ draw_histogram_bar(rval, x * 2 + 1, ((float) bins[1][x]) / ng, 1);
+ draw_histogram_bar(rval, x * 2 + 2, ((float) bins[1][x]) / ng, 1);
+ }
+ if (nb) {
+ draw_histogram_bar(rval, x * 2 + 1, ((float) bins[2][x]) / nb, 2);
+ draw_histogram_bar(rval, x * 2 + 2, ((float) bins[2][x]) / nb, 2);
+ }
}
wform_put_border((unsigned char *) rval->rect, rval->x, rval->y);
More information about the Bf-blender-cvs
mailing list