[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog backend/render_handler.h backen...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog backend/render_handler.h backen... |
Date: |
Wed, 23 Apr 2008 14:29:37 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 08/04/23 14:29:37
Modified files:
. : ChangeLog
backend : render_handler.h render_handler_agg.cpp
render_handler_ogl.cpp
gui : gui.cpp gui.h
server : render.cpp render.h
Log message:
* server/render.{cpp,h}: drop get_scale interface (unused).
* backend/render_handler.h: add set_translation method, to
go togheter with set_scale for setting a "stage matrix".
* backend/render_handler_agg.cpp,
backend/render_handler_ogl.cpp:
Implement set_translation.
* gui/gui.{cpp,h}: add x/y offset private member, compute
offsets
and scales on resize_view configuring renderer accordingly
(align stage to center).
Use scale/offset in notify_mouse_moved for proper
Window-to-Stage
coordinate conversion.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6357&r2=1.6358
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler.h?cvsroot=gnash&r1=1.59&r2=1.60
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_agg.cpp?cvsroot=gnash&r1=1.134&r2=1.135
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_ogl.cpp?cvsroot=gnash&r1=1.109&r2=1.110
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/gui.cpp?cvsroot=gnash&r1=1.153&r2=1.154
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/gui.h?cvsroot=gnash&r1=1.88&r2=1.89
http://cvs.savannah.gnu.org/viewcvs/gnash/server/render.cpp?cvsroot=gnash&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/gnash/server/render.h?cvsroot=gnash&r1=1.21&r2=1.22
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6357
retrieving revision 1.6358
diff -u -b -r1.6357 -r1.6358
--- ChangeLog 23 Apr 2008 13:50:51 -0000 1.6357
+++ ChangeLog 23 Apr 2008 14:29:36 -0000 1.6358
@@ -1,5 +1,18 @@
2008-04-23 Sandro Santilli <address@hidden>
+ * server/render.{cpp,h}: drop get_scale interface (unused).
+ * backend/render_handler.h: add set_translation method, to
+ go togheter with set_scale for setting a "stage matrix".
+ * backend/render_handler_agg.cpp, backend/render_handler_ogl.cpp:
+ Implement set_translation.
+ * gui/gui.{cpp,h}: add x/y offset private member, compute offsets
+ and scales on resize_view configuring renderer accordingly
+ (align stage to center).
+ Use scale/offset in notify_mouse_moved for proper Window-to-Stage
+ coordinate conversion.
+
+2008-04-23 Sandro Santilli <address@hidden>
+
* server/movie_root.cpp (clear): remove key/mouse listeners. Fixes
an assertion failure running levels.swf with PARANOIA_LEVEL > 1.
Index: backend/render_handler.h
===================================================================
RCS file: /sources/gnash/gnash/backend/render_handler.h,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -b -r1.59 -r1.60
--- backend/render_handler.h 27 Mar 2008 13:04:31 -0000 1.59
+++ backend/render_handler.h 23 Apr 2008 14:29:36 -0000 1.60
@@ -590,7 +590,9 @@
// nop
}
- virtual void get_scale(point& /*scale*/) {
+ /// Sets the x/y offset for the movie
+ virtual void set_translation(float /*xoff*/, float /*yoff*/) {
+ // nop
}
protected:
Index: backend/render_handler_agg.cpp
===================================================================
RCS file: /sources/gnash/gnash/backend/render_handler_agg.cpp,v
retrieving revision 1.134
retrieving revision 1.135
diff -u -b -r1.134 -r1.135
--- backend/render_handler_agg.cpp 2 Apr 2008 12:24:18 -0000 1.134
+++ backend/render_handler_agg.cpp 23 Apr 2008 14:29:36 -0000 1.135
@@ -2014,18 +2014,17 @@
}
void set_scale(float new_xscale, float new_yscale) {
- /*xscale = new_xscale/20.0f;
- yscale = new_yscale/20.0f;*/
scale_set=true;
+ log_debug("AGG scale being set, will discard translation");
stage_matrix.set_identity();
stage_matrix.set_scale(new_xscale/20.0f, new_yscale/20.0f);
}
- virtual void get_scale(point& scale) {
- scale.x = PIXELS_TO_TWIPS(stage_matrix.get_x_scale());
- scale.y = PIXELS_TO_TWIPS(stage_matrix.get_y_scale());
+ void set_translation(float xoff, float yoff) {
+ log_debug("AGG translation being set, will discard translation");
+ stage_matrix.set_translation(xoff, yoff);
}
virtual unsigned int getBytesPerPixel() const {
Index: backend/render_handler_ogl.cpp
===================================================================
RCS file: /sources/gnash/gnash/backend/render_handler_ogl.cpp,v
retrieving revision 1.109
retrieving revision 1.110
diff -u -b -r1.109 -r1.110
--- backend/render_handler_ogl.cpp 12 Mar 2008 23:19:04 -0000 1.109
+++ backend/render_handler_ogl.cpp 23 Apr 2008 14:29:36 -0000 1.110
@@ -1604,11 +1604,6 @@
_yscale = yscale;
}
- virtual void get_scale(point& scale) {
- scale.x = _xscale;
- scale.y = _yscale;
- }
-
virtual void set_invalidated_regions(const InvalidatedRanges& ranges)
{
#if 0
Index: gui/gui.cpp
===================================================================
RCS file: /sources/gnash/gnash/gui/gui.cpp,v
retrieving revision 1.153
retrieving revision 1.154
diff -u -b -r1.153 -r1.154
--- gui/gui.cpp 23 Apr 2008 11:43:48 -0000 1.153
+++ gui/gui.cpp 23 Apr 2008 14:29:37 -0000 1.154
@@ -84,7 +84,9 @@
_mouseShown(true),
_maxAdvances(0),
_xscale(1.0f),
- _yscale(1.0f)
+ _yscale(1.0f),
+ _xoffset(0),
+ _yoffset(0)
#ifdef GNASH_FPS_DEBUG
,fps_counter(0)
,fps_counter_total(0)
@@ -123,7 +125,9 @@
_mouseShown(true),
_maxAdvances(0),
_xscale(scale),
- _yscale(scale)
+ _yscale(scale),
+ _xoffset(0), // TODO: x and y offset will need update !
+ _yoffset(0)
#ifdef GNASH_FPS_DEBUG
,fps_counter(0)
,fps_counter_total(0)
@@ -219,7 +223,7 @@
void
Gui::resize_view(int width, int height)
{
-// GNASH_REPORT_FUNCTION;
+ GNASH_REPORT_FUNCTION;
assert(width>0);
assert(height>0);
@@ -232,11 +236,12 @@
_stage->set_display_viewport(0, 0, width, height);
}
- if ( _stage && _stage->isRescalingAllowed() )
- {
float swfwidth = _movieDef->get_width_pixels();
float swfheight = _movieDef->get_height_pixels();
+ if ( _stage && _stage->isRescalingAllowed() )
+ {
+
// set new scale value ( user-pixel / pseudo-pixel )
_xscale = width / swfwidth;
_yscale = height / swfheight;
@@ -244,9 +249,37 @@
// always scale proportionally
if (_xscale < _yscale) _yscale = _xscale;
else if (_yscale < _xscale) _xscale = _yscale;
+ }
+ else
+ {
+ _xscale = _yscale = 1.0f;
+ }
- _renderer->set_scale(_xscale, _yscale);
+ _xoffset=0;
+ _yoffset=0;
+
+ // TODO: check Stage.getAlignMode
+ {
+ // Align to center
+
+ // Offsets in pixels
+ float defWidth = swfwidth *= _xscale;
+ float defHeight = swfheight *= _yscale;
+ if ( width > defWidth )
+ {
+ float diffWidth = width-defWidth;
+ _xoffset = diffWidth/2.0;
}
+ if ( width > defHeight )
+ {
+ float diffHeight = height-defHeight;
+ _yoffset = diffHeight/2.0;
+ }
+ }
+
+ // TODO: have a generic set_matrix ?
+ _renderer->set_scale(_xscale, _yscale);
+ _renderer->set_translation(_xoffset, _yoffset);
}
else
@@ -368,10 +401,10 @@
if ( _stopped ) return;
// A stage pseudopixel is user pixel / _xscale wide
- float x = ux / _xscale;
+ float x = (ux-_xoffset) / _xscale;
// A stage pseudopixel is user pixel / _xscale high
- float y = uy / _yscale;
+ float y = (uy-_yoffset) / _yscale;
#ifdef DEBUG_MOUSE_COORDINATES
log_debug(_("mouse @ %d,%d"), x, y);
Index: gui/gui.h
===================================================================
RCS file: /sources/gnash/gnash/gui/gui.h,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -b -r1.88 -r1.89
--- gui/gui.h 23 Apr 2008 11:43:48 -0000 1.88
+++ gui/gui.h 23 Apr 2008 14:29:37 -0000 1.89
@@ -412,6 +412,12 @@
/// Height of a window pixel, in stage pseudopixel units.
float _yscale;
+ /// Window pixel X offset of stage origin
+ float _xoffset;
+
+ /// Window pixel Y offset of stage origin
+ float _yoffset;
+
bool display(movie_root* m);
#ifdef GNASH_FPS_DEBUG
Index: server/render.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/render.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- server/render.cpp 4 Dec 2007 11:45:29 -0000 1.23
+++ server/render.cpp 23 Apr 2008 14:29:37 -0000 1.24
@@ -77,15 +77,6 @@
if (s_render_handler)
s_render_handler->delete_bitmap_info(bi);
}
- void get_scale(point& scale) {
- if (s_render_handler) {
- s_render_handler->get_scale(scale);
- } else {
- scale.x = 1.0;
- scale.y = 1.0;
- }
- }
-
// Returns the format the current renderer wants videoframes in.
int videoFrameFormat() {
if (s_render_handler) return
s_render_handler->videoFrameFormat();
Index: server/render.h
===================================================================
RCS file: /sources/gnash/gnash/server/render.h,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- server/render.h 4 Dec 2007 11:45:29 -0000 1.21
+++ server/render.h 23 Apr 2008 14:29:37 -0000 1.22
@@ -43,9 +43,6 @@
/// See render_handler::create_bitmap_info_rgba (in
backend/render_handler.h)
bitmap_info* create_bitmap_info_rgba(image::rgba* im);
- /// See render_handler::get_scale (in backend/render_handler.h)
- void get_scale(point& scale);
-
/// See render_handler::delete_bitmap_info (in
backend/render_handler.h)
void delete_bitmap_info(bitmap_info* bi);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog backend/render_handler.h backen...,
Sandro Santilli <=