[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45626] branches/soc-2011-tomato: Camera tracking: revert changes made for texture buffer frame drawing.
Sergey Sharybin
sergey.vfx at gmail.com
Sat Apr 14 14:03:03 CEST 2012
Revision: 45626
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45626
Author: nazgul
Date: 2012-04-14 12:03:03 +0000 (Sat, 14 Apr 2012)
Log Message:
-----------
Camera tracking: revert changes made for texture buffer frame drawing.
Will be applied as another cleaned-up patch.
Modified Paths:
--------------
branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py
branches/soc-2011-tomato/source/blender/blenloader/intern/readfile.c
branches/soc-2011-tomato/source/blender/editors/include/ED_clip.h
branches/soc-2011-tomato/source/blender/editors/space_clip/CMakeLists.txt
branches/soc-2011-tomato/source/blender/editors/space_clip/SConscript
branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c
branches/soc-2011-tomato/source/blender/editors/space_clip/clip_editor.c
branches/soc-2011-tomato/source/blender/editors/space_clip/space_clip.c
branches/soc-2011-tomato/source/blender/makesdna/DNA_space_types.h
branches/soc-2011-tomato/source/blender/makesrna/intern/rna_space.c
Modified: branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py
===================================================================
--- branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py 2012-04-14 12:02:54 UTC (rev 45625)
+++ branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py 2012-04-14 12:03:03 UTC (rev 45626)
@@ -606,8 +606,6 @@
elif sc.mode == 'RECONSTRUCTION':
col.prop(sc, "show_stable", text="Stable")
- col.prop(sc, "use_texture_buffer")
-
clip = sc.clip
if clip:
col.label(text="Display Aspect Ratio:")
Modified: branches/soc-2011-tomato/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenloader/intern/readfile.c 2012-04-14 12:02:54 UTC (rev 45625)
+++ branches/soc-2011-tomato/source/blender/blenloader/intern/readfile.c 2012-04-14 12:03:03 UTC (rev 45626)
@@ -5385,7 +5385,6 @@
sclip->clip= newlibadr_us(fd, sc->id.lib, sclip->clip);
sclip->scopes.track_preview = NULL;
- sclip->draw_context = NULL;
sclip->scopes.ok = 0;
}
}
Modified: branches/soc-2011-tomato/source/blender/editors/include/ED_clip.h
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/include/ED_clip.h 2012-04-14 12:02:54 UTC (rev 45625)
+++ branches/soc-2011-tomato/source/blender/editors/include/ED_clip.h 2012-04-14 12:03:03 UTC (rev 45626)
@@ -58,10 +58,6 @@
void ED_clip_point_stable_pos(struct bContext *C, float x, float y, float *xr, float *yr);
void ED_clip_mouse_pos(struct bContext *C, struct wmEvent *event, float co[2]);
-void ED_space_clip_load_movieclip_buffer(struct SpaceClip *sc, struct ImBuf *ibuf);
-void ED_space_clip_unload_movieclip_buffer(struct SpaceClip *sc);
-void ED_space_clip_free_texture_buffer(struct SpaceClip *sc);
-
/* clip_ops.c */
void ED_operatormacros_clip(void);
Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/CMakeLists.txt
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/CMakeLists.txt 2012-04-14 12:02:54 UTC (rev 45625)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/CMakeLists.txt 2012-04-14 12:03:03 UTC (rev 45626)
@@ -31,7 +31,6 @@
../../makesdna
../../makesrna
../../windowmanager
- ../../gpu
../../../../intern/guardedalloc
${GLEW_INCLUDE_PATH}
)
Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/SConscript
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/SConscript 2012-04-14 12:02:54 UTC (rev 45625)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/SConscript 2012-04-14 12:03:03 UTC (rev 45626)
@@ -4,6 +4,6 @@
sources = env.Glob('*.c')
defs = []
incs = '../include ../../blenkernel ../../blenloader ../../blenfont ../../blenlib ../../imbuf ../../makesdna'
-incs += ' ../../makesrna ../../windowmanager #/intern/guardedalloc #/extern/glew/include ../../gpu'
+incs += ' ../../makesrna ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
env.BlenderLib ( 'bf_editors_space_clip', sources, Split(incs), defs, libtype=['core'], priority=[95] )
Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c 2012-04-14 12:02:54 UTC (rev 45625)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c 2012-04-14 12:03:03 UTC (rev 45626)
@@ -229,6 +229,9 @@
int x, y;
MovieClip *clip = ED_space_clip(sc);
+ /* set zoom */
+ glPixelZoom(zoomx*width/ibuf->x, zoomy*height/ibuf->y);
+
/* find window pixel coordinates of origin */
UI_view2d_to_region_no_clip(&ar->v2d, 0.0f, 0.0f, &x, &y);
@@ -239,35 +242,8 @@
else {
verify_buffer_float(ibuf);
- if(ibuf->rect) {
- if(sc->flag & SC_TEXTURE_BUFFER) {
- ED_space_clip_load_movieclip_buffer(sc, ibuf);
-
- glPushMatrix();
- glTranslatef(x, y, 0.0f);
- glScalef(zoomx, zoomy, 1.0f);
-
- glBegin(GL_QUADS);
- glTexCoord2f(0.0f, 0.0f); glVertex2f(0.0f, 0.0f);
- glTexCoord2f(1.0f, 0.0f); glVertex2f(width, 0.0f);
- glTexCoord2f(1.0f, 1.0f); glVertex2f(width, height);
- glTexCoord2f(0.0f, 1.0f); glVertex2f(0.0f, height);
- glEnd();
-
- glPopMatrix();
-
- ED_space_clip_unload_movieclip_buffer(sc);
- }
- else {
- /* set zoom */
- glPixelZoom(zoomx*width/ibuf->x, zoomy*height/ibuf->y);
-
- glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect);
-
- /* reset zoom */
- glPixelZoom(1.0f, 1.0f);
- }
- }
+ if (ibuf->rect)
+ glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect);
}
/* draw boundary border for frame if stabilization is enabled */
@@ -279,9 +255,9 @@
glLogicOp(GL_NOR);
glPushMatrix();
- glTranslatef(x, y, 0.0f);
+ glTranslatef(x, y, 0);
- glScalef(zoomx, zoomy, 1.0f);
+ glScalef(zoomx, zoomy, 0);
glMultMatrixf(sc->stabmat);
glBegin(GL_LINE_LOOP);
@@ -296,6 +272,10 @@
glDisable(GL_COLOR_LOGIC_OP);
glDisable(GL_LINE_STIPPLE);
}
+
+
+ /* reset zoom */
+ glPixelZoom(1.0f, 1.0f);
}
static void draw_track_path(SpaceClip *sc, MovieClip *UNUSED(clip), MovieTrackingTrack *track)
Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/clip_editor.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/clip_editor.c 2012-04-14 12:02:54 UTC (rev 45625)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_editor.c 2012-04-14 12:03:03 UTC (rev 45626)
@@ -31,8 +31,6 @@
#include <stddef.h>
-#include "MEM_guardedalloc.h"
-
#include "BKE_main.h"
#include "BKE_movieclip.h"
#include "BKE_context.h"
@@ -42,8 +40,6 @@
#include "BLI_utildefines.h"
#include "BLI_math.h"
-#include "GPU_extensions.h"
-
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
@@ -51,7 +47,6 @@
#include "ED_clip.h"
#include "BIF_gl.h"
-#include "BIF_glutil.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -319,148 +314,3 @@
{
ED_clip_point_stable_pos(C, event->mval[0], event->mval[1], &co[0], &co[1]);
}
-
-/* OpenGL draw context */
-
-typedef struct SpaceClipDrawContext {
- GLuint texture; /* OGL texture ID */
- short texture_allocated; /* flag if texture was allocated by glGenTextures */
- struct ImBuf *texture_ibuf; /* image buffer for which texture was created */
- int image_width, image_height; /* image width and height for which texture was created */
- unsigned last_texture; /* ID of previously used texture, so it'll be restored after clip drawing */
- int framenr;
-} SpaceClipDrawContext;
-
-void ED_space_clip_load_movieclip_buffer(SpaceClip *sc, ImBuf *ibuf)
-{
- SpaceClipDrawContext *context = sc->draw_context;
- MovieClip *clip = ED_space_clip(sc);
- int need_rebind = 0;
-
- if (!context) {
- context = MEM_callocN(sizeof(SpaceClipDrawContext), "SpaceClipDrawContext");
- sc->draw_context = context;
- }
-
- context->last_texture = glaGetOneInteger(GL_TEXTURE_2D);
-
- /* image texture need to be rebinded if displaying another image buffer
- * assuming displaying happens of footage frames only on which painting doesn't heppen.
- * so not changed image buffer pointer means unchanged image content */
- need_rebind |= context->texture_ibuf != ibuf;
- need_rebind |= context->framenr != sc->user.framenr;
-
- if (need_rebind) {
- int width = ibuf->x, height = ibuf->y;
- float *frect = NULL, *fscalerect = NULL;
- unsigned int *rect = NULL, *scalerect = NULL;
- int need_recreate = 0;
-
- rect = ibuf->rect;
- frect = ibuf->rect_float;
-
- /* if image resolution changed (e.g. switched to proxy display) texture need to be recreated */
- need_recreate = context->image_width != ibuf->x || context->image_height != ibuf->y;
-
- if (context->texture_ibuf && need_recreate) {
- glDeleteTextures(1, &context->texture);
- context->texture_allocated = 0;
- }
-
-#if 0
- /* disabled for now because current tracking users have got NPOT textures
- * working smoothly on their computers and forcing re-scaling during playback
- * slows down playback a lot */
-
- /* if videocard doesn't support NPOT textures, need to do rescaling */
- if (!GPU_non_power_of_two_support()) {
- if (!is_power_of_2_i(width) || !is_power_of_2_i(height)) {
- width = power_of_2_max_i(width);
- height = power_of_2_max_i(height);
-
- if (ibuf->x != width || ibuf->y != height) {
- if (frect) {
- fscalerect= MEM_mallocN(width*width*sizeof(*fscalerect)*4, "fscalerect");
- gluScaleImage(GL_RGBA, ibuf->x, ibuf->y, GL_FLOAT, ibuf->rect_float, width, height, GL_FLOAT, fscalerect);
-
- frect = fscalerect;
- }
- else {
- scalerect= MEM_mallocN(width*height*sizeof(*scalerect), "scalerect");
- gluScaleImage(GL_RGBA, ibuf->x, ibuf->y, GL_UNSIGNED_BYTE, ibuf->rect, width, height, GL_UNSIGNED_BYTE, scalerect);
-
- rect = scalerect;
- }
- }
- }
- }
-#endif
-
- if (need_recreate || !context->texture_allocated) {
- /* texture doesn't exist yet or need to be re-allocated because of changed dimensions */
- int filter = GL_LINEAR;
-
- /* non-scaled proxy shouldn;t use diltering */
- if ((clip->flag & MCLIP_USE_PROXY) == 0 ||
- ELEM(sc->user.render_size, MCLIP_PROXY_RENDER_SIZE_FULL, MCLIP_PROXY_RENDER_SIZE_100))
- {
- filter = GL_NEAREST;
- }
-
- glGenTextures(1, &context->texture);
- glBindTexture(GL_TEXTURE_2D, context->texture);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
- }
- else {
- /* if texture doesn't need to be reallocated itself, just bind it so
- * loading of image will happen to a proper texture */
- glBindTexture(GL_TEXTURE_2D, context->texture);
- }
-
- if (frect)
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16, width, height, 0, GL_RGBA, GL_FLOAT, frect);
- else
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, rect);
-
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list