/*  $Id: opengl_window_description.cpp,v 1.3 2003/12/29 01:04:58 harry Exp $
**
**  ClanLib Game SDK
**  Copyright (C) 2003  The ClanLib Team
**  For a total list of contributers see the file CREDITS.
**
**  This library is free software; you can redistribute it and/or
**  modify it under the terms of the GNU Lesser General Public
**  License as published by the Free Software Foundation; either
**  version 2.1 of the License, or (at your option) any later version.
**
**  This library 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
**  Lesser General Public License for more details.
**
**  You should have received a copy of the GNU Lesser General Public
**  License along with this library; if not, write to the Free Software
**  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
*/

#include "Display/display_precomp.h"
#include "API/GL/opengl_window.h"
#include "API/GL/opengl_window_description.h"
#include "opengl_window_description_generic.h"

/////////////////////////////////////////////////////////////////////////////
// CL_OpenGLWindowDescription construction:

CL_OpenGLWindowDescription::CL_OpenGLWindowDescription()
: CL_DisplayWindowDescription(new CL_OpenGLWindowDescription_Generic)
{
}

CL_OpenGLWindowDescription::~CL_OpenGLWindowDescription()
{
}

/////////////////////////////////////////////////////////////////////////////
// CL_OpenGLWindowDescription attributes:

int CL_OpenGLWindowDescription::get_buffer_size() const
{
	return dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->buffer_size;
}

int CL_OpenGLWindowDescription::get_level() const
{
	return dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->level;
}

bool CL_OpenGLWindowDescription::get_rgba() const
{
	return dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->rgba;
}

bool CL_OpenGLWindowDescription::get_doublebuffer() const
{
	return dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->doublebuffer;
}

bool CL_OpenGLWindowDescription::get_stereo() const
{
	return dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->stereo;
}

int CL_OpenGLWindowDescription::get_aux_buffers() const
{
	return dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->aux_buffers;
}

int CL_OpenGLWindowDescription::get_red_size() const
{
	return dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->red_size;
}

int CL_OpenGLWindowDescription::get_green_size() const
{
	return dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->green_size;
}

int CL_OpenGLWindowDescription::get_blue_size() const
{
	return dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->blue_size;
}

int CL_OpenGLWindowDescription::get_alpha_size() const
{
	return dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->alpha_size;
}

int CL_OpenGLWindowDescription::get_depth_size() const
{
	return dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->depth_size;
}

int CL_OpenGLWindowDescription::get_stencil_size() const
{
	return dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->stencil_size;
}

int CL_OpenGLWindowDescription::get_accum_red_size() const
{
	return dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->accum_red_size;
}

int CL_OpenGLWindowDescription::get_accum_green_size() const
{
	return dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->accum_green_size;
}

int CL_OpenGLWindowDescription::get_accum_blue_size() const
{
	return dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->accum_blue_size;
}

int CL_OpenGLWindowDescription::get_accum_alpha_size() const
{
	return dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->accum_alpha_size;
}

/////////////////////////////////////////////////////////////////////////////
// CL_OpenGLWindowDescription operations:

void CL_OpenGLWindowDescription::set_rgba(bool value)
{
	dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->rgba = value;
}

void CL_OpenGLWindowDescription::set_doublebuffer(bool value)
{
	dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->doublebuffer = value;
}

void CL_OpenGLWindowDescription::set_stereo(bool value)
{
	dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->stereo = value;
}

void CL_OpenGLWindowDescription::set_buffer_size(int value)
{
	dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->buffer_size = value;
}

void CL_OpenGLWindowDescription::set_level(int value)
{
	dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->level = value;
}

void CL_OpenGLWindowDescription::set_aux_buffers(int value)
{
	dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->aux_buffers = value;
}

void CL_OpenGLWindowDescription::set_red_size(int value)
{
	dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->red_size = value;
}

void CL_OpenGLWindowDescription::set_green_size(int value)
{
	dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->green_size = value;
}

void CL_OpenGLWindowDescription::set_blue_size(int value)
{
	dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->blue_size = value;
}

void CL_OpenGLWindowDescription::set_alpha_size(int value)
{
	dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->alpha_size = value;
}

void CL_OpenGLWindowDescription::set_depth_size(int value)
{
	dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->depth_size = value;
}

void CL_OpenGLWindowDescription::set_stencil_size(int value)
{
	dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->stencil_size = value;
}

void CL_OpenGLWindowDescription::set_accum_red_size(int value)
{
	dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->accum_red_size = value;
}

void CL_OpenGLWindowDescription::set_accum_green_size(int value)
{
	dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->accum_green_size = value;
}

void CL_OpenGLWindowDescription::set_accum_blue_size(int value)
{
	dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->accum_blue_size = value;
}

void CL_OpenGLWindowDescription::set_accum_alpha_size(int value)
{
	dynamic_cast<CL_OpenGLWindowDescription_Generic*>(impl)->accum_alpha_size = value;
}

/////////////////////////////////////////////////////////////////////////////
// CL_OpenGLWindowDescription implementation:
