diff --git a/panda/src/wgldisplay/wglGraphicsStateGuardian.I b/panda/src/wgldisplay/wglGraphicsStateGuardian.I new file mode 100755 index 0000000000..2dcd1ea755 --- /dev/null +++ b/panda/src/wgldisplay/wglGraphicsStateGuardian.I @@ -0,0 +1,17 @@ +// Filename: wglGraphicsStateGuardian.I +// Created by: drose (27Jan03) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved +// +// All use of this software is subject to the terms of the Panda 3d +// Software license. You should have received a copy of this license +// along with this source code; you will also find a current copy of +// the license at http://www.panda3d.org/license.txt . +// +// To contact the maintainers of this program write to +// panda3d@yahoogroups.com . +// +//////////////////////////////////////////////////////////////////// diff --git a/panda/src/wgldisplay/wglGraphicsStateGuardian.cxx b/panda/src/wgldisplay/wglGraphicsStateGuardian.cxx new file mode 100755 index 0000000000..5d6bc4c602 --- /dev/null +++ b/panda/src/wgldisplay/wglGraphicsStateGuardian.cxx @@ -0,0 +1,47 @@ +// Filename: wglGraphicsStateGuardian.cxx +// Created by: drose (27Jan03) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved +// +// All use of this software is subject to the terms of the Panda 3d +// Software license. You should have received a copy of this license +// along with this source code; you will also find a current copy of +// the license at http://www.panda3d.org/license.txt . +// +// To contact the maintainers of this program write to +// panda3d@yahoogroups.com . +// +//////////////////////////////////////////////////////////////////// + +#include "wglGraphicsStateGuardian.h" + + +TypeHandle wglGraphicsStateGuardian::_type_handle; + +//////////////////////////////////////////////////////////////////// +// Function: wglGraphicsStateGuardian::Constructor +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +wglGraphicsStateGuardian:: +wglGraphicsStateGuardian(const FrameBufferProperties &properties) : + GLGraphicsStateGuardian(properties) +{ + _context = (HGLRC)0; +} + +//////////////////////////////////////////////////////////////////// +// Function: wglGraphicsStateGuardian::Destructor +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +wglGraphicsStateGuardian:: +~wglGraphicsStateGuardian() { + if (_context != (HGLRC)NULL) { + wglDeleteContext(_context); + _context = (HGLRC)NULL; + } +} diff --git a/panda/src/wgldisplay/wglGraphicsStateGuardian.h b/panda/src/wgldisplay/wglGraphicsStateGuardian.h new file mode 100755 index 0000000000..659eb87913 --- /dev/null +++ b/panda/src/wgldisplay/wglGraphicsStateGuardian.h @@ -0,0 +1,60 @@ +// Filename: wglGraphicsStateGuardian.h +// Created by: drose (27Jan03) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved +// +// All use of this software is subject to the terms of the Panda 3d +// Software license. You should have received a copy of this license +// along with this source code; you will also find a current copy of +// the license at http://www.panda3d.org/license.txt . +// +// To contact the maintainers of this program write to +// panda3d@yahoogroups.com . +// +//////////////////////////////////////////////////////////////////// + +#ifndef WGLGRAPHICSSTATEGUARDIAN_H +#define WGLGRAPHICSSTATEGUARDIAN_H + +#include "pandabase.h" + +#include "glGraphicsStateGuardian.h" + +//////////////////////////////////////////////////////////////////// +// Class : wglGraphicsStateGuardian +// Description : A tiny specialization on GLGraphicsStateGuardian to +// add some wgl-specific information. +//////////////////////////////////////////////////////////////////// +class wglGraphicsStateGuardian : public GLGraphicsStateGuardian { +public: + wglGraphicsStateGuardian(const FrameBufferProperties &properties); + virtual ~wglGraphicsStateGuardian(); + + HGLRC _context; + int _pfnum; + PIXELFORMATDESCRIPTOR _pixelformat; + +public: + static TypeHandle get_class_type() { + return _type_handle; + } + static void init_type() { + GLGraphicsStateGuardian::init_type(); + register_type(_type_handle, "wglGraphicsStateGuardian", + GLGraphicsStateGuardian::get_class_type()); + } + virtual TypeHandle get_type() const { + return get_class_type(); + } + virtual TypeHandle force_init_type() {init_type(); return get_class_type();} + +private: + static TypeHandle _type_handle; +}; + +#include "wglGraphicsStateGuardian.I" + +#endif