[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: |
Fri, 13 Jul 2007 16:05:09 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/07/13 16:05:09
Modified files:
. : ChangeLog
backend : render_handler.h render_handler_agg.cpp
render_handler_cairo.cpp render_handler_ogl.cpp
render_handler_tri.cpp render_handler_tri.h
server : fontlib.cpp fontlib.h render.cpp render.h
Log message:
* backend/render_handler.h, backend/render_handler_agg.cpp,
backend/render_handler_cairo.cpp,
backend/render_handler_ogl.cpp,
backend/render_handler_tri.cpp,
backend/render_handler_tri.h, server/fontlib.cpp,
server/fontlib.h, server/render.cpp, server/render.h:
Updated renderer interface to always take gnash::rgba by
const ref
rather then by value. Should improve performance (removes
double
copy of 4 float values for each glyph, bitmap, line strip!).
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.3733&r2=1.3734
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler.h?cvsroot=gnash&r1=1.42&r2=1.43
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_agg.cpp?cvsroot=gnash&r1=1.90&r2=1.91
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_cairo.cpp?cvsroot=gnash&r1=1.22&r2=1.23
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_ogl.cpp?cvsroot=gnash&r1=1.74&r2=1.75
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_tri.cpp?cvsroot=gnash&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_tri.h?cvsroot=gnash&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/gnash/server/fontlib.cpp?cvsroot=gnash&r1=1.31&r2=1.32
http://cvs.savannah.gnu.org/viewcvs/gnash/server/fontlib.h?cvsroot=gnash&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/gnash/server/render.cpp?cvsroot=gnash&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/gnash/server/render.h?cvsroot=gnash&r1=1.15&r2=1.16
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.3733
retrieving revision 1.3734
diff -u -b -r1.3733 -r1.3734
--- ChangeLog 13 Jul 2007 14:50:07 -0000 1.3733
+++ ChangeLog 13 Jul 2007 16:05:07 -0000 1.3734
@@ -1,5 +1,16 @@
2007-07-13 Sandro Santilli <address@hidden>
+ * backend/render_handler.h, backend/render_handler_agg.cpp,
+ backend/render_handler_cairo.cpp,
+ backend/render_handler_ogl.cpp, backend/render_handler_tri.cpp,
+ backend/render_handler_tri.h, server/fontlib.cpp,
+ server/fontlib.h, server/render.cpp, server/render.h:
+ Updated renderer interface to always take gnash::rgba by const ref
+ rather then by value. Should improve performance (removes double
+ copy of 4 float values for each glyph, bitmap, line strip!).
+
+2007-07-13 Sandro Santilli <address@hidden>
+
* testsuite/actionscript.all/TextField.as:
Add test for TextField.prototype.hasOwnProperty('background')
returning false (weird, returns true in
Index: backend/render_handler.h
===================================================================
RCS file: /sources/gnash/gnash/backend/render_handler.h,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -b -r1.42 -r1.43
--- backend/render_handler.h 1 Jul 2007 10:53:47 -0000 1.42
+++ backend/render_handler.h 13 Jul 2007 16:05:08 -0000 1.43
@@ -18,7 +18,7 @@
//
//
-/* $Id: render_handler.h,v 1.42 2007/07/01 10:53:47 bjacques Exp $ */
+/* $Id: render_handler.h,v 1.43 2007/07/13 16:05:08 strk Exp $ */
#ifndef RENDER_HANDLER_H
#define RENDER_HANDLER_H
@@ -319,11 +319,21 @@
/// Bracket the displaying of a frame from a movie.
//
- /// Fill the background color, and set up default
- /// transforms, etc.
+ /// Set up to render a full frame from a movie and fills the
+ /// background. Sets up necessary transforms, to scale the
+ /// movie to fit within the given dimensions. Call
+ /// end_display() when you're done.
+ ///
+ /// The rectangle (viewport_x0, viewport_y0, viewport_x0 +
+ /// viewport_width, viewport_y0 + viewport_height) defines the
+ /// window coordinates taken up by the movie.
+ ///
+ /// The rectangle (x0, y0, x1, y1) defines the pixel
+ /// coordinates of the movie that correspond to the viewport
+ /// bounds.
///
virtual void begin_display(
- rgba background_color,
+ const rgba& background_color,
int viewport_x0, int viewport_y0,
int viewport_width, int viewport_height,
float x0, float x1, float y0, float y1) = 0;
@@ -340,7 +350,7 @@
//
/// Can be used to draw empty boxes and cursors.
virtual void draw_line_strip(const void* coords, int vertex_count,
- const rgba color) = 0;
+ const rgba& color) = 0;
/// Draw a simple, solid filled polygon (no outline).
//
@@ -354,7 +364,7 @@
/// add an additional vertex to close it.
///
virtual void draw_poly(const point* corners, size_t corner_count,
- const rgba fill, const rgba outline) = 0;
+ const rgba& fill, const rgba& outline) = 0;
/// Set line and fill styles for mesh & line_strip rendering.
@@ -375,7 +385,7 @@
const bitmap_info* bi,
const rect& coords,
const rect& uv_coords,
- rgba color) = 0;
+ const rgba& color) = 0;
virtual void set_antialiased(bool enable) = 0;
@@ -481,7 +491,7 @@
/// @param pixel_scale
///
virtual void draw_glyph(shape_character_def *def, const matrix& mat,
- rgba color, float pixel_scale) = 0;
+ const rgba& color, float pixel_scale) = 0;
/// The render handler can choose if it wishes to use textured glyphs
/// (pre-computed bitmaps which are used for small text sizes) or if
Index: backend/render_handler_agg.cpp
===================================================================
RCS file: /sources/gnash/gnash/backend/render_handler_agg.cpp,v
retrieving revision 1.90
retrieving revision 1.91
diff -u -b -r1.90 -r1.91
--- backend/render_handler_agg.cpp 1 Jul 2007 10:53:47 -0000 1.90
+++ backend/render_handler_agg.cpp 13 Jul 2007 16:05:08 -0000 1.91
@@ -17,7 +17,7 @@
-/* $Id: render_handler_agg.cpp,v 1.90 2007/07/01 10:53:47 bjacques Exp $ */
+/* $Id: render_handler_agg.cpp,v 1.91 2007/07/13 16:05:08 strk Exp $ */
// Original version by Udo Giacomozzi and Hannes Mayr,
// INDUNET GmbH (www.indunet.it)
@@ -630,7 +630,7 @@
void begin_display(
- gnash::rgba background_color,
+ const gnash::rgba& background_color,
int /*viewport_x0*/, int /*viewport_y0*/,
int /*viewport_width*/, int /*viewport_height*/,
float /*x0*/, float /*x1*/, float /*y0*/, float /*y1*/)
@@ -758,7 +758,7 @@
}
- void draw_line_strip(const void* coords, int vertex_count, const rgba color)
+ void draw_line_strip(const void* coords, int vertex_count, const rgba&
color)
// Draw the line strip formed by the sequence of points.
{
@@ -820,7 +820,7 @@
const gnash::bitmap_info* /*bi*/,
const gnash::rect& /*coords*/,
const gnash::rect& /*uv_coords*/,
- gnash::rgba /*color*/)
+ const gnash::rgba& /*color*/)
// Draw a rectangle textured with the given bitmap, with the
// given color. Apply given transform; ignore any currently
// set transforms.
@@ -863,7 +863,7 @@
void draw_glyph(shape_character_def *def,
- const matrix& mat, rgba color, float /*pixel_scale*/) {
+ const matrix& mat, const rgba& color, float /*pixel_scale*/) {
// NOTE: def->get_bound() is NULL for glyphs so we can't check the
// clipping area (bounds_in_clipping_area):
@@ -1825,8 +1825,8 @@
/// Draws the given polygon.
- void draw_poly(const point* corners, size_t corner_count, const rgba fill,
- const rgba outline) {
+ void draw_poly(const point* corners, size_t corner_count, const rgba& fill,
+ const rgba& outline) {
assert(m_pixf != NULL);
Index: backend/render_handler_cairo.cpp
===================================================================
RCS file: /sources/gnash/gnash/backend/render_handler_cairo.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- backend/render_handler_cairo.cpp 11 Jul 2007 16:01:51 -0000 1.22
+++ backend/render_handler_cairo.cpp 13 Jul 2007 16:05:08 -0000 1.23
@@ -236,7 +236,7 @@
void disable() { m_mode = INVALID; }
- void set_color(gnash::rgba color) { m_mode = COLOR; m_color =
color; }
+ void set_color(const gnash::rgba& color) { m_mode = COLOR; m_color
= color; }
void set_bitmap(const gnash::bitmap_info* bi, const gnash::matrix&
m, bitmap_wrap_mode wm, const gnash::cxform& color_transform)
{
m_mode = (wm == WRAP_REPEAT) ? BITMAP_WRAP : BITMAP_CLAMP;
@@ -333,7 +333,7 @@
}
void begin_display(
- gnash::rgba background_color,
+ const gnash::rgba& background_color,
int /*viewport_x0*/, int /*viewport_y0*/,
int viewport_width, int viewport_height,
float x0, float x1, float y0, float y1)
@@ -426,7 +426,7 @@
}
- void fill_style_color(int fill_side, gnash::rgba color)
+ void fill_style_color(int fill_side, const gnash::rgba& color)
// Set fill style for the left interior of the shape. If
// enable is false, turn off fill for the left interior.
{
@@ -436,7 +436,7 @@
}
- void line_style_color(gnash::rgba color)
+ void line_style_color(const gnash::rgba& color)
// Set the line style of the shape. If enable is false, turn
// off lines for following curve segments.
{
@@ -526,7 +526,7 @@
const gnash::bitmap_info* binfo,
const gnash::rect& coords,
const gnash::rect& /*uv_coords*/,
- gnash::rgba color)
+ const gnash::rgba& color)
// Draw a rectangle textured with the given bitmap, with the
// given color. Apply given transform; ignore any currently
// set transforms.
Index: backend/render_handler_ogl.cpp
===================================================================
RCS file: /sources/gnash/gnash/backend/render_handler_ogl.cpp,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -b -r1.74 -r1.75
--- backend/render_handler_ogl.cpp 2 Jun 2007 09:54:20 -0000 1.74
+++ backend/render_handler_ogl.cpp 13 Jul 2007 16:05:08 -0000 1.75
@@ -5,7 +5,7 @@
// A render_handler that uses SDL & OpenGL
-/* $Id: render_handler_ogl.cpp,v 1.74 2007/06/02 09:54:20 tgc Exp $ */
+/* $Id: render_handler_ogl.cpp,v 1.75 2007/07/13 16:05:08 strk Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -288,7 +288,7 @@
void disable() { m_mode = INVALID; }
- void set_color(gnash::rgba color) { m_mode = COLOR; m_color = color;
}
+ void set_color(const gnash::rgba& color) { m_mode = COLOR; m_color =
color; }
void set_bitmap(const gnash::bitmap_info* bi, const gnash::matrix&
m, bitmap_wrap_mode wm, const gnash::cxform& color_transform)
{
m_mode = (wm == WRAP_REPEAT) ? BITMAP_WRAP : BITMAP_CLAMP;
@@ -466,22 +466,10 @@
}
void begin_display(
- gnash::rgba background_color,
+ const gnash::rgba& background_color,
int viewport_x0, int viewport_y0,
int viewport_width, int viewport_height,
float x0, float x1, float y0, float y1)
- // Set up to render a full frame from a movie and fills the
- // background. Sets up necessary transforms, to scale the
- // movie to fit within the given dimensions. Call
- // end_display() when you're done.
- //
- // The rectangle (viewport_x0, viewport_y0, viewport_x0 +
- // viewport_width, viewport_y0 + viewport_height) defines the
- // window coordinates taken up by the movie.
- //
- // The rectangle (x0, y0, x1, y1) defines the pixel
- // coordinates of the movie that correspond to the viewport
- // bounds.
{
// GNASH_REPORT_FUNCTION;
@@ -638,7 +626,7 @@
}
- void fill_style_color(int fill_side, gnash::rgba color)
+ void fill_style_color(int fill_side, const gnash::rgba& color)
// Set fill style for the left interior of the shape. If
// enable is false, turn off fill for the left interior.
{
@@ -648,7 +636,7 @@
}
- void line_style_color(gnash::rgba color)
+ void line_style_color(const gnash::rgba& color)
// Set the line style of the shape. If enable is false, turn
// off lines for following curve segments.
{
@@ -823,7 +811,7 @@
const gnash::bitmap_info* bi,
const gnash::rect& coords,
const gnash::rect& uv_coords,
- gnash::rgba color)
+ const gnash::rgba& color)
// Draw a rectangle textured with the given bitmap, with the
// given color. Apply given transform; ignore any currently
// set transforms.
Index: backend/render_handler_tri.cpp
===================================================================
RCS file: /sources/gnash/gnash/backend/render_handler_tri.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- backend/render_handler_tri.cpp 3 Jul 2007 05:46:02 -0000 1.15
+++ backend/render_handler_tri.cpp 13 Jul 2007 16:05:08 -0000 1.16
@@ -18,7 +18,7 @@
//
//
-/* $Id: render_handler_tri.cpp,v 1.15 2007/07/03 05:46:02 strk Exp $ */
+/* $Id: render_handler_tri.cpp,v 1.16 2007/07/13 16:05:08 strk Exp $ */
#include "render_handler_tri.h"
@@ -119,7 +119,7 @@
void triangulating_render_handler::draw_glyph(shape_character_def *def,
- const matrix& mat, rgba color, float pixel_scale) {
+ const matrix& mat, const rgba& color, float pixel_scale) {
// Make sure m_single_fill_styles contains the desired color
need_single_fill_style(color);
@@ -286,7 +286,7 @@
void triangulating_render_handler::draw_line_strip(const void* coords,
- int vertex_count, const rgba color) {
+ int vertex_count, const rgba& color) {
line_style_color(color);
line_style_width(1);
@@ -295,7 +295,7 @@
}
void triangulating_render_handler::draw_poly(const point* corners,
- size_t corner_count, const rgba fill, const rgba outline) {
+ size_t corner_count, const rgba& fill, const rgba& outline) {
unsigned int vno=0;
// Create points array to vertex array
Index: backend/render_handler_tri.h
===================================================================
RCS file: /sources/gnash/gnash/backend/render_handler_tri.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- backend/render_handler_tri.h 3 Jul 2007 05:46:02 -0000 1.12
+++ backend/render_handler_tri.h 13 Jul 2007 16:05:08 -0000 1.13
@@ -18,7 +18,7 @@
//
//
-/* $Id: render_handler_tri.h,v 1.12 2007/07/03 05:46:02 strk Exp $ */
+/* $Id: render_handler_tri.h,v 1.13 2007/07/13 16:05:08 strk Exp $ */
#ifndef GNASH_RENDER_HANDLER_TRI_H
#define GNASH_RENDER_HANDLER_TRI_H
@@ -123,15 +123,15 @@
/// Triangulating render handlers do not need to support this special version
/// of draw_line_strip().
- void draw_line_strip(const void* coords, int vertex_count, const rgba color);
+ void draw_line_strip(const void* coords, int vertex_count, const rgba&
color);
/// The given polygon is translated to a mesh strip by this class.
- void draw_poly(const point* corners, size_t corner_count, const rgba fill,
- const rgba outline);
+ void draw_poly(const point* corners, size_t corner_count, const rgba& fill,
+ const rgba& outline);
/// The glyph is drawn just like a normal shape character.
virtual void draw_glyph(shape_character_def *def,
- const matrix& mat, rgba color, float pixel_scale);
+ const matrix& mat, const rgba& color, float pixel_scale);
/// Older backends always used glyph textures, so any triangulating render
/// handler activates glyph textures by default.
@@ -167,7 +167,7 @@
virtual void fill_style_disable(int fill_side) = 0;
/// Sets the fill style to the given solid color.
- virtual void fill_style_color(int fill_side, rgba color) = 0;
+ virtual void fill_style_color(int fill_side, const rgba& color) = 0;
/// Sets the fill style to the given bitmap. This is also used for
gradients
/// which are transformed to a bitmap prior to this call.
@@ -178,7 +178,7 @@
virtual void line_style_disable() = 0;
/// Sets the stroke color for subsequent draw_line_strip() calls
- virtual void line_style_color(rgba color) = 0;
+ virtual void line_style_color(const rgba& color) = 0;
/// Sets the stroke width for subsequent draw_line_strip() calls. When
/// width==1.0 a "hairline" should be drawn.
Index: server/fontlib.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/fontlib.cpp,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- server/fontlib.cpp 11 Jul 2007 16:16:51 -0000 1.31
+++ server/fontlib.cpp 13 Jul 2007 16:05:08 -0000 1.32
@@ -5,7 +5,7 @@
// A module to take care of all of gnash's loaded fonts.
-/* $Id: fontlib.cpp,v 1.31 2007/07/11 16:16:51 strk Exp $ */
+/* $Id: fontlib.cpp,v 1.32 2007/07/13 16:05:08 strk Exp $ */
#include "container.h"
#include "tu_file.h"
@@ -1312,7 +1312,7 @@
}
- void draw_glyph(const matrix& mat, const texture_glyph& tg, rgba
color, int nominal_glyph_height)
+ void draw_glyph(const matrix& mat, const texture_glyph& tg, const
rgba& color, int nominal_glyph_height)
// Draw the given texture glyph using the given transform, in
// the given color.
{
Index: server/fontlib.h
===================================================================
RCS file: /sources/gnash/gnash/server/fontlib.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- server/fontlib.h 11 Jul 2007 16:16:51 -0000 1.7
+++ server/fontlib.h 13 Jul 2007 16:05:09 -0000 1.8
@@ -62,7 +62,7 @@
void add_font(font* f);
// For drawing a textured glyph w/ current render transforms.
- void draw_glyph(const matrix& m, const texture_glyph& g, rgba color,
int nominal_glyph_height);
+ void draw_glyph(const matrix& m, const texture_glyph& g, const rgba&
color, int nominal_glyph_height);
// Return the pixel height of text, such that the
// texture glyphs are sampled 1-to-1 texels-to-pixels.
Index: server/render.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/render.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- server/render.cpp 28 Feb 2007 17:25:26 -0000 1.15
+++ server/render.cpp 13 Jul 2007 16:05:09 -0000 1.16
@@ -111,7 +111,7 @@
// Fill the background color, and set up default
// transforms, etc.
void begin_display(
- rgba background_color,
+ const rgba& background_color,
int viewport_x0, int viewport_y0,
int viewport_width, int viewport_height,
float x0, float x1, float y0, float y1)
@@ -159,7 +159,7 @@
}
- void draw_line_strip(const int16_t coords[], int
vertex_count, const rgba color)
+ void draw_line_strip(const int16_t coords[], int
vertex_count, const rgba& color)
{
#ifdef DEBUG_RENDER_CALLS
GNASH_REPORT_FUNCTION;
@@ -168,8 +168,8 @@
}
- void draw_poly(const point* corners, int corner_count, const rgba fill,
- const rgba outline)
+ void draw_poly(const point* corners, int corner_count, const rgba& fill,
+ const rgba& outline)
{
#ifdef DEBUG_RENDER_CALLS
GNASH_REPORT_FUNCTION;
@@ -190,7 +190,7 @@
void draw_glyph(shape_character_def *def,
const matrix& mat,
- rgba color,
+ const rgba& color,
float pixel_scale)
{
#ifdef DEBUG_RENDER_CALLS
@@ -259,7 +259,7 @@
// Special function to draw a rectangular bitmap;
// intended for textured glyph rendering. Ignores
// current transforms.
- void draw_bitmap(const matrix& m, const bitmap_info* bi,
const rect& coords, const rect& uv_coords, rgba color)
+ void draw_bitmap(const matrix& m, const bitmap_info* bi,
const rect& coords, const rect& uv_coords, const rgba& color)
{
#ifdef DEBUG_RENDER_CALLS
GNASH_REPORT_FUNCTION;
Index: server/render.h
===================================================================
RCS file: /sources/gnash/gnash/server/render.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- server/render.h 28 Feb 2007 17:25:26 -0000 1.15
+++ server/render.h 13 Jul 2007 16:05:09 -0000 1.16
@@ -73,7 +73,7 @@
/// See render_handler::begin_display (in
backend/render_handler.h)
void begin_display(
- rgba background_color,
+ const rgba& background_color,
int viewport_x0, int viewport_y0,
int viewport_width, int viewport_height,
float x0, float x1, float y0, float y1);
@@ -100,11 +100,11 @@
/// See render_handler::draw_line_strip (in
backend/render_handler.h)
void draw_line_strip(const int16_t coords[],
- int vertex_count, const rgba color);
+ int vertex_count, const rgba& color);
/// See render_handler::draw_poly (in backend/render_handler.h)
void draw_poly(const point* corners, int corner_count,
- const rgba fill, const rgba outline);
+ const rgba& fill, const rgba& outline);
/// See render_handler::draw_shape_character (in
backend/render_handler.h)
void draw_shape_character(shape_character_def *def,
@@ -112,7 +112,7 @@
/// See render_handler::draw_glyph (in backend/render_handler.h)
void draw_glyph(shape_character_def *def, const matrix& mat,
- rgba color, float pixel_scale);
+ const rgba& color, float pixel_scale);
/// See render_handler::allow_glyph_textures (in
backend/render_handler.h)
bool allow_glyph_textures();
@@ -134,7 +134,7 @@
/// See render_handler::draw_bitmap (in
backend/render_handler.h)
void draw_bitmap(const matrix& m, const bitmap_info* bi,
const rect& coords,
- const rect& uv_coords, rgba color);
+ const rect& uv_coords, const rgba& color);
} // end namespace render
- [Gnash-commit] gnash ChangeLog backend/render_handler.h backen...,
Sandro Santilli <=