Files
@ 7265c1df0532
Branch filter:
Location: ohnobinki_overlay/net-www/gnash/files/render_handler_ogl.h - annotation
7265c1df0532
3.5 KiB
text/plain
dev-php/Auth_OpenID: added new ebuild
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 | //
// Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#ifndef __RENDER_HANDLER_OGL_H__
#define __RENDER_HANDLER_OGL_H__
#if defined(NOT_SGI_GL) || defined(__APPLE_CC__)
# ifdef __APPLE_CC__
# include <AGL/agl.h>
# endif
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <OpenGL/glext.h>
# ifdef __APPLE_CC__
# define GLUCALLBACKTYPE GLvoid (*)()
# else
# define GLUCALLBACKTYPE GLvoid (*)(...)
# endif
#else
# define GLUCALLBACKTYPE void (*)()
# include <GL/gl.h>
# ifdef WIN32
# define GL_CLAMP_TO_EDGE 0x812F
# else
# include <GL/glx.h>
# ifdef OSMESA_TESTING
# include <GL/osmesa.h>
# endif // OSMESA_TESTING
# endif
# include <GL/glu.h>
# ifndef APIENTRY
# define APIENTRY
# endif
#endif
namespace gnash {
typedef std::vector<const path*> PathRefs;
struct oglVertex {
oglVertex(double x, double y, double z = 0.0)
: _x(x), _y(y), _z(z)
{
}
oglVertex(const point& p)
: _x(p.x), _y(p.y), _z(0.0)
{
}
GLdouble _x;
GLdouble _y;
GLdouble _z;
};
typedef std::map< const path*, std::vector<oglVertex> > PathPointMap;
class Tesselator
{
public:
Tesselator();
~Tesselator();
void beginPolygon();
void feed(std::vector<oglVertex>& vertices);
void tesselate();
void beginContour();
void endContour();
void rememberVertex(GLdouble* v);
static void
error(GLenum error);
static void combine(GLdouble coords [3], void *vertex_data[4],
GLfloat weight[4], void **outData, void* userdata);
private:
std::vector<GLdouble*> _vertices;
GLUtesselator* _tessobj;
};
class WholeShape
{
public:
void newPath(const path& new_path)
{
PathRefs refs;
refs.push_back(&new_path);
shape.push_back(refs);
}
void addPath(const path& add_path)
{
PathRefs& refs = shape.back();
refs.push_back(&add_path);
}
void addPathRefs(const PathRefs& pathrefs)
{
PathRefs new_refs(pathrefs.begin(), pathrefs.end());
shape.push_back(new_refs);
}
const std::vector<PathRefs>& get() const
{
return shape;
}
private:
std::vector<PathRefs> shape;
};
class bitmap_info_ogl : public bitmap_info
{
public:
bitmap_info_ogl(image::image_base* image, GLenum pixelformat,
bool ogl_accessible);
~bitmap_info_ogl();
void apply(const gnash::matrix& bitmap_matrix,
render_handler::bitmap_wrap_mode wrap_mode);
private:
inline bool ogl_accessible() const;
void setup();
void upload(boost::uint8_t* data, size_t width, size_t height);
std::auto_ptr<image::image_base> _img;
GLenum _pixel_format;
GLenum _ogl_img_type;
bool _ogl_accessible;
GLuint _texture_id;
size_t _orig_width;
size_t _orig_height;
};
} // namespace gnash
#endif // __RENDER_HANDLER_OGL_H__
|