00001 /* 00002 File: GLRenderer.h 00003 00004 Function: Implements an OpenGL renderer. This is still an abstract 00005 object: the MakeCurrent() method must be overridden to set 00006 up the GL context. 00007 00008 Author(s): Andrew Willmott 00009 00010 Copyright: (c) 1997-2000, Andrew Willmott 00011 */ 00012 00013 #ifndef __GLRenderer__ 00014 #define __GLRenderer__ 00015 00016 #include "gcl/GCLConfig.h" 00017 #ifndef GCL_NO_GL 00018 #include "gcl/Renderer.h" 00019 #include <GL/gl.h> 00020 00021 00022 // --- The GLRenderer class --------------------------------------------------- 00023 00024 00025 class GLRenderer : public Renderer 00026 { 00027 public: 00028 GLRenderer(Int w = 100, Int h = 100); 00029 00030 Void Init(); 00031 virtual Void Show(); 00032 virtual Void Print(ostream &s); 00033 virtual Renderer &Begin(RenderStyle style); 00034 virtual Renderer &End(); 00035 00036 virtual Renderer &SetPoint(const Point &p); 00037 virtual Renderer &SetNormal(const Point &p); 00038 virtual Renderer &SetCoord(const Coord &c); 00039 virtual Renderer &SetTexCoord(const Coord &c); 00040 virtual Renderer &SetColour(const Colour &c); 00041 virtual Renderer &SetColour(const Colour4 &c); 00042 00043 virtual Renderer &SetTransform(const Transform &t); 00044 virtual Renderer &SetCamera(const Camera &c); 00045 virtual Renderer &SetTexture(const Image *image); 00046 00047 virtual Renderer &Clear(); 00048 virtual Renderer &Pop(); 00049 virtual Renderer &Push(); 00050 00051 virtual Renderer &GetImage(Image &image); 00052 virtual Renderer &PutImage(const Image &image, Int x, Int y); 00053 00054 // GL-specific calls 00055 00056 Void SetHeadlight(Bool on); 00057 Void SetDoubleSided(Bool on); 00058 00059 protected: 00060 Int glHeight; 00061 Int glWidth; 00062 const Image *oldImage; 00063 }; 00064 00065 #endif 00066 #endif