[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] [SCM] Gnash branch, openvg, updated. 8178d1b50b8354a09bea
From: |
Rob Savoye |
Subject: |
[Gnash-commit] [SCM] Gnash branch, openvg, updated. 8178d1b50b8354a09bea59289d4e9840e85164be |
Date: |
Fri, 29 Oct 2010 16:30:41 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Gnash".
The branch, openvg has been updated
via 8178d1b50b8354a09bea59289d4e9840e85164be (commit)
via fb12500f18d0cb06990eb53aa04cc954d078f5b9 (commit)
via 0bbf779f767e9bb8413c5f41a120af97b05a6225 (commit)
via 20e2816e06944cdae24120dfce9e022d8ff10c13 (commit)
via e0e2535a876e0b1e1a919d5014b49ff206493d96 (commit)
from 61c4ebc4a07593cf78924c17c12f04eef21e9013 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit//commit/?id=8178d1b50b8354a09bea59289d4e9840e85164be
commit 8178d1b50b8354a09bea59289d4e9840e85164be
Author: Rob Savoye <address@hidden>
Date: Fri Oct 29 10:30:10 2010 -0600
hack in simple OpenVG drawing test, for debug only
diff --git a/librender/testr_gtk.cpp b/librender/testr_gtk.cpp
index f5bb49f..23a7b4a 100644
--- a/librender/testr_gtk.cpp
+++ b/librender/testr_gtk.cpp
@@ -33,6 +33,26 @@
# include <gtk/gtk.h>
# include <gdk/gdk.h>
#endif
+#ifdef RENDERER_AGG
+#include "Renderer_agg.h"
+#endif
+#ifdef RENDERER_OPENGL
+#include "Renderer_ogl.h"
+#endif
+#ifdef RENDERER_OPENVG
+#include "Renderer_ovg.h"
+#include <VG/openvg.h>
+#include <VG/vgu.h>
+#endif
+#ifdef RENDERER_GLES1
+#include "Renderer_gles1.h"
+#endif
+#ifdef RENDERER_GLES2
+#include "Renderer_gles2.h"
+#endif
+#ifdef RENDERER_CAIRO
+#include "Renderer_cairo.h"
+#endif
#include "log.h"
#include "SWFMatrix.h"
@@ -44,6 +64,12 @@
using namespace gnash;
using namespace std;
+const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
+const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0};
+
+VGPath path;
+VGPaint paint;
+
// The debug log used by all the gnash libraries.
static LogFile& dbglogfile = LogFile::getDefaultInstance();
@@ -63,9 +89,67 @@ void on_window1_realize (GtkWidget *widget, gpointer
user_data);
void on_window1_size_allocate (GtkWidget *widget, GdkRectangle *allocation,
gpointer user_data);
+static void
+initVGDemo(void)
+{
+ VGfloat clearColor[] = {0.0f, 0.0f, 0.0f, 1.0f};/* black color */
+ VGfloat greenColor[] = {0.0f, 1.0f, 0.0f, 1.0f};/* green color */
+ VGint arcType = VGU_ARC_OPEN;
+ VGfloat x, y, w, h, startAngle, angleExtent;
+
+ x = 150;
+ y = 150;
+ w = 150;
+ h = 150;
+#if 0
+ startAngle = -540.0f;
+ angleExtent = 270.0f;
+#else
+ startAngle = 270.0f;
+ angleExtent = 90.0f;
+#endif
+ paint = vgCreatePaint();
+
+ vgSetPaint(paint, VG_STROKE_PATH);
+ vgSetParameterfv(paint, VG_PAINT_COLOR, 4, greenColor);
+ vgSetParameteri( paint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR);
+ vgSetf(VG_STROKE_LINE_WIDTH, 6.0f);
+ vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED);
+ vgSetfv(VG_CLEAR_COLOR, 4, clearColor);
+
+ path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F,
+ 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL);
+
+ vguArc(path, x, y, w, h, startAngle, angleExtent, (VGUArcType)arcType);
+
+ vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_BUTT);
+ vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_BEVEL);
+ vgSetf(VG_STROKE_MITER_LIMIT, 4.0f);
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+ vgLoadIdentity();
+}
+
+static void
+draw(void)
+{
+ vgClear(0, 0, 500, 500);
+ vgDrawPath(path, VG_STROKE_PATH);
+
+ vgFlush();
+}
+
GtkWidget *
-create_GTK_window(int argc, char **argv)
+create_GTK_window()
{
+ // As gtk_init() wants the command line arguments, we have to create
+ // fake ones, as we don't care about the X11 options at this point.
+ int argc = 0;
+ char **argv = 0;
gtk_init(&argc, &argv);
GtkWidget *window;
@@ -84,7 +168,10 @@ create_GTK_window(int argc, char **argv)
canvas = gtk_drawing_area_new();
gtk_widget_show(canvas);
gtk_container_add (GTK_CONTAINER (window), canvas);
-
+ // Disable double buffering, otherwise gtk tries to update widget
+ // contents from its internal offscreen buffer at the end of expose event
+ gtk_widget_set_double_buffered(canvas, FALSE);
+
g_signal_connect(GTK_OBJECT(window), "delete_event",
(GCallback)gtk_main_quit, NULL);
g_signal_connect ((gpointer) window, "configure_event",
@@ -120,7 +207,7 @@ create_GTK_window(int argc, char **argv)
// Just do one iteration of the main loop
gtk_main_iteration_do(true);
- return window;
+ return canvas;
}
void
@@ -171,7 +258,8 @@ on_window1_expose_event(GtkWidget *widget, GdkEventExpose
*event,
gpointer user_data)
{
GNASH_REPORT_FUNCTION;
-
+ vgLoadIdentity();
+
return FALSE;
}
@@ -188,6 +276,7 @@ on_window1_size_allocate(GtkWidget *widget, GdkRectangle
*allocation,
GNASH_REPORT_FUNCTION;
}
+
// Local Variables:
// mode: C++
// indent-tabs-mode: nil
http://git.savannah.gnu.org/cgit//commit/?id=fb12500f18d0cb06990eb53aa04cc954d078f5b9
commit fb12500f18d0cb06990eb53aa04cc954d078f5b9
Author: Rob Savoye <address@hidden>
Date: Fri Oct 29 10:29:08 2010 -0600
rename m_display_width * height to _display_*.
diff --git a/librender/Renderer_ovg.cpp b/librender/Renderer_ovg.cpp
index 6efb2fd..13f7f41 100644
--- a/librender/Renderer_ovg.cpp
+++ b/librender/Renderer_ovg.cpp
@@ -230,14 +230,26 @@ for_each(C& container, R (T::*pmf)(const A&),const A& arg)
}
Renderer_ovg::Renderer_ovg()
- : m_display_width(0.0),
- m_display_height(0.0),
+ : _display_width(0.0),
+ _display_height(0.0),
_drawing_mask(false)
{
if (!initDevice(EGLDevice::OPENVG)) {
log_error("Couldn't initialize EGL Device!");
}
+#ifdef HAVE_GTK2
+ if (!initEGL(0)) {
+ log_error("Couldn't initialize EGL Window!");
+ }
+ EGLint value;
+ eglQuerySurface(_eglDisplay, _eglSurface, EGL_WIDTH, &value);
+ _display_width = value;
+ eglQuerySurface(_eglDisplay, _eglSurface, EGL_HEIGHT, &value);
+ _display_height = value;
+#else
+#warning "Must initialize a native window!"
+#endif
set_scale(1.0f, 1.0f);
m_fillpaint = vgCreatePaint();
@@ -268,8 +280,8 @@ Renderer_ovg::init(float x, float y)
vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_ROUND);
vgSetf(VG_STROKE_MITER_LIMIT, 4.0f);
#else
- m_display_width = x;
- m_display_height = y;
+ _display_width = x;
+ _display_height = y;
// Turn on alpha blending.
vgSeti (VG_BLEND_MODE, VG_BLEND_SRC_OVER);
@@ -394,12 +406,12 @@ Renderer_ovg::begin_display(const rgba& /* bg_color */,
int /* viewport_x0 */,
float mat[9];
memset(mat, 0, sizeof(mat));
- mat[0] = (float)m_display_width / float(x1 - x0); // scale sx
+ mat[0] = (float)_display_width / float(x1 - x0); // scale sx
mat[1] = 0; // shx
mat[3] = 0; // shy
- mat[4] = -((float)m_display_height / float(y1 - y0)); // scale sy
+ mat[4] = -((float)_display_height / float(y1 - y0)); // scale sy
mat[6] = 0; // shift tx
- mat[7] = m_display_height; // shift ty
+ mat[7] = _display_height; // shift ty
vgSeti (VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE);
vgLoadMatrix (mat);
@@ -586,11 +598,11 @@ Renderer_ovg::apply_mask()
mat[3] = 0.0f; // shy
mat[4] = -stage_matrix.get_x_scale(); // scale sy
mat[6] = 0; // shift tx
- mat[7] = m_display_height; // shift ty
+ mat[7] = _display_height; // shift ty
vgLoadMatrix(mat);
#ifdef OPENVG_VERSION_1_1
- vgMask(m_mask, VG_FILL_MASK, 0, 0, m_display_width, m_display_height);
FIXME
+ vgMask(m_mask, VG_FILL_MASK, 0, 0, _display_width, _display_height); FIXME
#endif
// Call add_paths for each mask.
std::for_each(_masks.begin(), _masks.end(),
@@ -1492,27 +1504,64 @@ Renderer_ovg::printVGParams()
bool
Renderer_ovg::initTestBuffer(unsigned int width, unsigned int height)
{
- int size = width * height; // * getBytesPerPixel();
+ int size = width * height * getBitsPerPixel(); // FIXME was Bytes not bits
+
+#ifdef HAVE_GTK2
+ // new surface
+ // makeCurrentContext
+#else
// _testBuffer = static_cast<unsigned char *>(realloc(_testBuffer, size));
_testBuffer = new unsigned char[size];
memset(_testBuffer, 0, size);
printf("\tRenderer Test memory at: %p\n", _testBuffer);
+#endif
+
+ initEGL(0);
-// init_buffer(_testBuffer, size, width, height, width *
getBytesPerPixel());
+ init_buffer(_testBuffer, size, width, height, width * getBitsPerPixel());
// init(width, height);
return true;
}
+ /// Initializes the rendering buffer. The memory pointed by "mem" is not
+ /// owned by the renderer and init_buffer() may be called multiple times
+ /// when the buffer size changes, for example. However, bits_per_pixel must
+ /// remain the same.
+ /// rowstride is the size, in bytes, of one row.
+ /// This method *must* be called prior to any other method of the class!
+void
+Renderer_ovg::init_buffer(unsigned char *mem, int size, int x, int y, int
rowstride)
+{
+#if 0
+ assert(x > 0);
+ assert(y > 0);
+
+ xres = x;
+ yres = y;
+
+ m_rbuf.attach(mem, xres, yres, rowstride);
+
+ // allocate pixel format accessor and renderer_base
+ m_pixf.reset(new PixelFormat(m_rbuf));
+ m_rbase.reset(new renderer_base(*m_pixf));
+
+ // by default allow drawing everywhere
+ set_invalidated_region_world();
+#endif
+}
+
Renderer *
Renderer_ovg::startInternalRender(gnash::image::GnashImage&)
{
+
}
void
Renderer_ovg::endInternalRender()
{
+
}
void
diff --git a/librender/Renderer_ovg.h b/librender/Renderer_ovg.h
index d7f60fb..46e1423 100644
--- a/librender/Renderer_ovg.h
+++ b/librender/Renderer_ovg.h
@@ -122,6 +122,7 @@ public:
unsigned int getBitsPerPixel();
bool initTestBuffer(unsigned width, unsigned height);
+ void init_buffer(unsigned char *mem, int size, int x, int y, int
rowstride);
// These methods are only for debugging and development
void printVGParams();
@@ -201,8 +202,8 @@ public:
float _height;
// Output size.
- float m_display_width;
- float m_display_height;
+ float _display_width;
+ float _display_height;
std::vector<PathVec> _masks;
bool _drawing_mask;
http://git.savannah.gnu.org/cgit//commit/?id=0bbf779f767e9bb8413c5f41a120af97b05a6225
commit 0bbf779f767e9bb8413c5f41a120af97b05a6225
Author: Rob Savoye <address@hidden>
Date: Fri Oct 29 10:27:57 2010 -0600
test the new accesors
diff --git a/librender/test_egl.cpp b/librender/test_egl.cpp
index 619a2e5..85b3667 100644
--- a/librender/test_egl.cpp
+++ b/librender/test_egl.cpp
@@ -67,6 +67,8 @@ main(int argc, char *argv[])
#ifdef RENDERER_OPENVG
test_egl(egl1, EGLDevice::OPENVG);
egl1.printEGLConfig();
+ egl1.printEGLContext();
+ egl1.printEGLSurface();
#endif
#ifdef RENDERER_GLES1
@@ -118,6 +120,41 @@ test_egl(EGLDevice &egl, EGLDevice::rtype_t rtype)
runtest.fail("EGLDevice::getErrorString()");
}
+ if (egl.getWidth()) {
+ runtest.pass("EGLDevice::getWidth()");
+ } else {
+ runtest.fail("EGLDevice::getWidth()");
+ }
+
+ if (egl.getHeigth()) {
+ runtest.pass("EGLDevice::getHeigth()");
+ } else {
+ runtest.fail("EGLDevice::getHeigth()");
+ }
+
+ if (egl.getVerticalRes()) {
+ runtest.pass("EGLDevice::getVerticalRes()");
+ } else {
+ runtest.fail("EGLDevice::getVerticalRes()");
+ }
+
+ if (egl.getHorzRes()) {
+ runtest.pass("EGLDevice::getHorzRes()");
+ } else {
+ runtest.fail("EGLDevice::getHorzRes()");
+ }
+
+ if (egl.supportsRenderer(EGLDevice::OPENVG)) {
+ runtest.pass("EGLDevice::supportsRenderer()");
+ } else {
+ runtest.fail("EGLDevice::supportsRenderer()");
+ }
+
+ if (egl.isSingleBuffered() != egl.isBackBuffered()) {
+ runtest.pass("EGLDevice::isSingleBuffered()");
+ } else {
+ runtest.fail("EGLDevice::isSingleBuffered()");
+ }
}
// Local Variables:
http://git.savannah.gnu.org/cgit//commit/?id=20e2816e06944cdae24120dfce9e022d8ff10c13
commit 20e2816e06944cdae24120dfce9e022d8ff10c13
Author: Rob Savoye <address@hidden>
Date: Fri Oct 29 10:27:32 2010 -0600
add accesors for EGL config data. Use cerr instead of log_debug for
debugging so it always prints. Use Gdk instead of Xlib for display stuff
diff --git a/librender/eglDevice.cpp b/librender/eglDevice.cpp
index 5c7817d..d269d42 100644
--- a/librender/eglDevice.cpp
+++ b/librender/eglDevice.cpp
@@ -295,17 +295,21 @@ EGLDevice::initDevice(EGLDevice::rtype_t rtype)
}
#ifdef HAVE_GTK2_XX
- Display *X11Display = XOpenDisplay(0);
- XVisualInfo *visInfo, visTemplate;
- int num_visuals;
- // The X window visual must match the EGL config
- visTemplate.visualid = vid;
- visInfo = XGetVisualInfo(X11Display, VisualIDMask, &visTemplate,
&num_visuals);
- if (!visInfo) {
- log_error("couldn't get X visual");
- return false;
- }
- XFree(visInfo);
+ GdkVisual* wvisual = gdk_drawable_get_visual(_drawing_area->window);
+
+ GdkImage* tmpimage = gdk_image_new (GDK_IMAGE_FASTEST, wvisual, 1, 1);
+
+ const GdkVisual* visual = tmpimage->visual;
+
+ // FIXME: we use bpp instead of depth, because depth doesn't appear to
+ // include the padding byte(s) the GdkImage actually has.
+ const char *pixelformat = agg_detect_pixel_format(
+ visual->red_shift, visual->red_prec,
+ visual->green_shift, visual->green_prec,
+ visual->blue_shift, visual->blue_prec,
+ tmpimage->bpp * 8);
+
+ gdk_image_destroy(tmpimage);
#endif
// printEGLConfig(_eglConfig);
@@ -337,6 +341,9 @@ EGLDevice::initEGL(EGLNativeWindowType window)
if (!window) {
#if HAVE_GTK2
+ // This renders to the root screen, instead of the canvas, but keeps
+ // the test case from core dumping, and doesn't really effect anything
+ // but seeing that you are rendering.
_nativeWindow = gdk_x11_get_default_root_xwindow();
#endif
} else {
@@ -590,15 +597,16 @@ EGLDevice::printEGLContext(EGLContext context)
{
EGLint value;
eglQueryContext(_eglDisplay, context, EGL_CONFIG_ID, &value);
- log_debug("Context EGL_CONFIG_ID is %d", value);
+ std::cerr << "Context EGL_CONFIG_ID is " << value << std::endl;
eglQueryContext(_eglDisplay, context, EGL_CONTEXT_CLIENT_TYPE, &value);
- log_debug("\tEGL_CONTEXT_CLIENT_TYPE is %d", (value == EGL_OPENVG_API)
- ? "EGL_OPENVG_API" : "EGL_OPENGL_ES_API");
+ std::cerr << "\tEGL_CONTEXT_CLIENT_TYPE is "
+ << std::string((value == EGL_OPENVG_API)
+ ? "EGL_OPENVG_API" : "EGL_OPENGL_ES_API") << std::endl;
// eglQueryContext(_eglDisplay, context, EGL_CONTEXT_CLIENT_VERSION,
&value);
// log_debug("EGL_CONTEXT_CLIENT_VERSION is %d", value);
eglQueryContext(_eglDisplay, context, EGL_RENDER_BUFFER, &value);
- log_debug("\tEGL_RENDER_BUFFER is %s", (value == EGL_BACK_BUFFER)
- ? "EGL_BACK_BUFFER" : "EGL_SINGLE_BUFFER");
+ std::cerr << "\tEGL_RENDER_BUFFER is " << std::string((value ==
EGL_BACK_BUFFER)
+ ? "EGL_BACK_BUFFER" : "EGL_SINGLE_BUFFER") << std::endl;
}
void
@@ -606,24 +614,26 @@ EGLDevice::printEGLSurface(EGLSurface surface)
{
EGLint value;
eglQuerySurface(_eglDisplay, surface, EGL_CONFIG_ID, &value);
- log_debug("Surface EGL_CONFIG_ID is %d", value);
+ std::cerr << "Surface EGL_CONFIG_ID is " << value << std::endl;
eglQuerySurface(_eglDisplay, surface, EGL_HEIGHT, &value);
- log_debug("\tEGL_HEIGHT is %d", value);
+ std::cerr << "\tEGL_HEIGHT is " << value<< std::endl;
eglQuerySurface(_eglDisplay, surface, EGL_WIDTH, &value);
- log_debug("\tEGL_WIDTH is %d", value);
+ std::cerr << "\tEGL_WIDTH is " << value << std::endl;
eglQuerySurface(_eglDisplay, surface, EGL_RENDER_BUFFER, &value);
- log_debug("\tEGL_RENDER_BUFFER is %s", (value == EGL_BACK_BUFFER)
- ? "EGL_BACK_BUFFER" : "EGL_SINGLE_BUFFER");
+ std::cerr << "\tEGL_RENDER_BUFFER is " << std::string((value ==
EGL_BACK_BUFFER)
+ ? "EGL_BACK_BUFFER" : "EGL_SINGLE_BUFFER") << std::endl;
eglQuerySurface(_eglDisplay, surface, EGL_VERTICAL_RESOLUTION, &value);
- log_debug("\tEGL_VERTICAL_RESOLUTION is %d", value);
+ std::cerr << "\tEGL_VERTICAL_RESOLUTION is " << value << std::endl;
eglQuerySurface(_eglDisplay, surface, EGL_HORIZONTAL_RESOLUTION, &value);
- log_debug("\tEGL_HORIZONTAL_RESOLUTION is %d", value);
+ std::cerr << "\tEGL_HORIZONTAL_RESOLUTION is " << value << std::endl;
eglQuerySurface(_eglDisplay, surface, EGL_SWAP_BEHAVIOR, &value);
- log_debug("\tEGL_SWAP_BEHAVIOR is %d", (value == EGL_BUFFER_DESTROYED)
- ? "EGL_BUFFER_DESTROYED" : "EGL_BUFFER_PRESERVED");
+ std::cerr << "\tEGL_SWAP_BEHAVIOR is "
+ << std::string((value == EGL_BUFFER_DESTROYED)
+ ? "EGL_BUFFER_DESTROYED" : "EGL_BUFFER_PRESERVED") <<
std::endl;
eglQuerySurface(_eglDisplay, surface, EGL_MULTISAMPLE_RESOLVE, &value);
- log_debug("\tEGL_MULTISAMPLE_RESOLVE is %d", (value ==
EGL_MULTISAMPLE_RESOLVE_BOX)
- ? "EGL_MULTISAMPLE_RESOLVE_BOX" :
"EGL_MULTISAMPLE_RESOLVE_DEFAULT");
+ std::cerr << "\tEGL_MULTISAMPLE_RESOLVE is "
+ << std::string((value == EGL_MULTISAMPLE_RESOLVE_BOX)
+ ? "EGL_MULTISAMPLE_RESOLVE_BOX" :
"EGL_MULTISAMPLE_RESOLVE_DEFAULT") << std::endl;
}
} // namespace renderer
diff --git a/librender/eglDevice.h b/librender/eglDevice.h
index 3df5c74..83c981b 100644
--- a/librender/eglDevice.h
+++ b/librender/eglDevice.h
@@ -70,9 +70,66 @@ class EGLDevice
void printEGLContext(EGLContext context);
void printEGLSurface() { return printEGLSurface(_eglSurface); };
void printEGLSurface(EGLSurface surface);
+
+ // Accessors for the setting needed by higher level code
+ EGLint getWidth() {
+ EGLint value;
+ eglQuerySurface(_eglDisplay, _eglSurface, EGL_WIDTH, &value);
+ return value;
+ };
+ EGLint getHeigth() {
+ EGLint value;
+ eglQuerySurface(_eglDisplay, _eglSurface, EGL_HEIGHT, &value);
+ return value;
+ }
+ EGLint getVerticalRes() {
+ EGLint value;
+ eglQuerySurface(_eglDisplay, _eglSurface, EGL_VERTICAL_RESOLUTION,
&value);
+ return value;
+ }
+ EGLint getHorzRes() {
+ EGLint value;
+ eglQuerySurface(_eglDisplay, _eglSurface, EGL_HORIZONTAL_RESOLUTION,
&value);
+ return value;
+ }
+ bool supportsRenderer(rtype_t rtype) {
+ EGLint value;
+ eglQuerySurface(_eglDisplay, _eglSurface, EGL_HEIGHT, &value);
+ eglGetConfigAttrib(_eglDisplay, _eglConfig, EGL_RENDERABLE_TYPE,
&value);
+ if (value > 0) {
+ std::string str;
+ if ((value & EGL_OPENGL_ES2_BIT) && (rtype ==
EGLDevice::OPENGLES2)) {
+ return true;
+ }
+ if ((value & EGL_OPENGL_ES_BIT) && (rtype ==
EGLDevice::OPENGLES1)) {
+ return true;
+ }
+ if ((value & EGL_OPENVG_BIT) && (rtype == EGLDevice::OPENVG)){
+ return true;
+ }
+ }
+ return false;
+ }
+ bool isSingleBuffered() {
+ EGLint value;
+ eglQuerySurface(_eglDisplay, _eglSurface, EGL_SINGLE_BUFFER, &value);
+ if (value == EGL_SINGLE_BUFFER) {
+ return true;
+ }
+ return false;
+ }
- private:
+ bool isBackBuffered() {
+ EGLint value;
+ eglQuerySurface(_eglDisplay, _eglSurface, EGL_BACK_BUFFER, &value);
+ if (value == EGL_BACK_BUFFER) {
+ return true;
+ }
+ return false;
+ }
+
+protected:
EGLConfig _eglConfig;
EGLContext _eglContext;
EGLSurface _eglSurface;
http://git.savannah.gnu.org/cgit//commit/?id=e0e2535a876e0b1e1a919d5014b49ff206493d96
commit e0e2535a876e0b1e1a919d5014b49ff206493d96
Author: Rob Savoye <address@hidden>
Date: Fri Oct 29 10:25:30 2010 -0600
draw_poly is now drawPoly
diff --git a/librender/Renderer_ogl.cpp b/librender/Renderer_ogl.cpp
index b82a975..00a5374 100644
--- a/librender/Renderer_ogl.cpp
+++ b/librender/Renderer_ogl.cpp
@@ -809,7 +809,7 @@ public:
}
}
- boost::shared_ptr<gnash::GnashTexture> getCachedTexture(image::GnashImage
*frame)
+ boost::shared_ptr<GnashTexture> getCachedTexture(image::GnashImage *frame)
{
boost::shared_ptr<GnashTexture> texture;
gnash::GnashTextureFormat frameFormat(frame->type());
@@ -1139,7 +1139,7 @@ public:
// NOTE: this implementation can't handle complex polygons (such as concave
// polygons.
- virtual void draw_poly(const point* corners, size_t corner_count,
+ virtual void drawPoly(const point* corners, size_t corner_count,
const rgba& fill, const rgba& outline, const SWFMatrix& mat, bool /*
masked */)
{
if (corner_count < 1) {
-----------------------------------------------------------------------
Summary of changes:
librender/Renderer_ogl.cpp | 4 +-
librender/Renderer_ovg.cpp | 71 +++++++++++++++++++++++++++-----
librender/Renderer_ovg.h | 5 +-
librender/eglDevice.cpp | 64 +++++++++++++++++------------
librender/eglDevice.h | 59 ++++++++++++++++++++++++++-
librender/test_egl.cpp | 37 +++++++++++++++++
librender/testr_gtk.cpp | 97 ++++++++++++++++++++++++++++++++++++++++++--
7 files changed, 290 insertions(+), 47 deletions(-)
hooks/post-receive
--
Gnash
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] [SCM] Gnash branch, openvg, updated. 8178d1b50b8354a09bea59289d4e9840e85164be,
Rob Savoye <=