From 19298179dbf105ebee9b4f949420c67e045c57e3 Mon Sep 17 00:00:00 2001 From: the_fiddler Date: Thu, 28 Feb 2008 15:26:51 +0000 Subject: [PATCH] Renamed file. --- Source/OpenTK/Graphics/GraphicsMode.cs | 263 +++++++++++++++++++++++++ 1 file changed, 263 insertions(+) create mode 100644 Source/OpenTK/Graphics/GraphicsMode.cs diff --git a/Source/OpenTK/Graphics/GraphicsMode.cs b/Source/OpenTK/Graphics/GraphicsMode.cs new file mode 100644 index 00000000..eab963ba --- /dev/null +++ b/Source/OpenTK/Graphics/GraphicsMode.cs @@ -0,0 +1,263 @@ +#region --- License --- +/* Licensed under the MIT/X11 license. + * Copyright (c) 2006-2008 the OpenTK Team. + * This notice may not be removed from any source distribution. + * See license.txt for licensing detailed licensing details. + */ +#endregion + +using System; +using System.Collections.Generic; +using System.Text; + +namespace OpenTK.Graphics +{ + /// Defines the format for graphics operations. + public class GraphicsMode + { + ColorDepth color_format, accumulator_format; + int depth, stencil, buffers, samples; + bool stereo; + + #region --- Constructors --- + + #region internal GraphicsFormat(GraphicsFormat mode) + + /// + /// Constructs a new GraphicsFormat from the given GraphicsFormat. + /// + internal GraphicsMode(GraphicsMode mode) + : this(mode.ColorFormat, mode.Depth, mode.Stencil, mode.Samples, mode.AccumulatorFormat, mode.Buffers, mode.Stereo) { } + + #endregion + + #region public GraphicsFormat() + + /// Constructs a new GraphicsFormat with sensible default parameters. + public GraphicsMode() + : this(Default) + { } + + #endregion + + #region public GraphicsFormat(ColorFormat color) + + /// Constructs a new GraphicsFormat with the specified parameters. + /// The ColorFormat of the color buffer. + public GraphicsMode(ColorDepth color) + : this(color, Default.Depth, Default.Stencil, Default.Samples, Default.AccumulatorFormat, Default.Buffers, Default.Stereo) + { } + + #endregion + + #region public GraphicsFormat(ColorFormat color, int depth) + + /// Constructs a new GraphicsFormat with the specified parameters. + /// The ColorFormat of the color buffer. + /// The number of bits in the depth buffer. + public GraphicsMode(ColorDepth color, int depth) + : this(color, depth, Default.Stencil, Default.Samples, Default.AccumulatorFormat, Default.Buffers, Default.Stereo) + { } + + #endregion + + #region public GraphicsFormat(ColorFormat color, int depth, int stencil) + + /// Constructs a new GraphicsFormat with the specified parameters. + /// The ColorFormat of the color buffer. + /// The number of bits in the depth buffer. + /// The number of bits in the stencil buffer. + public GraphicsMode(ColorDepth color, int depth, int stencil) + : this(color, depth, stencil, Default.Samples, Default.AccumulatorFormat, Default.Buffers, Default.Stereo) + { } + + #endregion + + #region public GraphicsFormat(ColorFormat color, int depth, int stencil, int samples) + + /// Constructs a new GraphicsFormat with the specified parameters. + /// The ColorFormat of the color buffer. + /// The number of bits in the depth buffer. + /// The number of bits in the stencil buffer. + /// The number of samples for FSAA. + public GraphicsMode(ColorDepth color, int depth, int stencil, int samples) + : this(color, depth, stencil, samples, Default.AccumulatorFormat, Default.Buffers, Default.Stereo) + { } + + #endregion + + #region public GraphicsFormat(ColorFormat color, int depth, int stencil, int samples, ColorFormat accum) + + /// Constructs a new GraphicsFormat with the specified parameters. + /// The ColorFormat of the color buffer. + /// The number of bits in the depth buffer. + /// The number of bits in the stencil buffer. + /// The number of samples for FSAA. + /// The ColorFormat of the accumilliary buffer. + public GraphicsMode(ColorDepth color, int depth, int stencil, int samples, ColorDepth accum) + : this(color, depth, stencil, samples, accum, Default.Buffers, Default.Stereo) + { } + + #endregion + + #region public GraphicsFormat(ColorFormat color, int depth, int stencil, int samples, ColorFormat accum, int buffers) + + /// Constructs a new GraphicsFormat with the specified parameters. + /// The ColorFormat of the color buffer. + /// The number of bits in the depth buffer. + /// The number of bits in the stencil buffer. + /// The number of samples for FSAA. + /// The ColorFormat of the accumilliary buffer. + /// The number of render buffers. Typical values include one (single-), two (double-) or three (triple-buffering). + public GraphicsMode(ColorDepth color, int depth, int stencil, int samples, ColorDepth accum, int buffers) + : this(color, depth, stencil, samples, accum, buffers, Default.Stereo) + { } + + #endregion + + #region public GraphicsFormat(ColorFormat color, int depth, int stencil, int samples, ColorFormat accum, int buffers, bool stereo) + + /// Constructs a new GraphicsFormat with the specified parameters. + /// The ColorFormat of the color buffer. + /// The number of bits in the depth buffer. + /// The number of bits in the stencil buffer. + /// The number of samples for FSAA. + /// The ColorFormat of the accumilliary buffer. + /// Set to true for a GraphicsFormat with stereographic capabilities. + /// The number of render buffers. Typical values include one (single-), two (double-) or three (triple-buffering). + public GraphicsMode(ColorDepth color, int depth, int stencil, int samples, ColorDepth accum, int buffers, bool stereo) + { + if (depth < 0) throw new ArgumentOutOfRangeException("depth", "Must be greater than, or equal to zero."); + if (stencil < 0) throw new ArgumentOutOfRangeException("stencil", "Must be greater than, or equal to zero."); + if (buffers <= 0) throw new ArgumentOutOfRangeException("buffers", "Must be greater than zero."); + if (samples < 0) throw new ArgumentOutOfRangeException("samples", "Must be greater than, or equal to zero."); + + this.ColorFormat = color; + this.Depth = depth; + this.Stencil = stencil; + this.AccumulatorFormat = accum; + this.Buffers = buffers; + this.Stereo = stereo; + } + + #endregion + + #endregion + + #region --- Public Methods --- + + #region public int ColorFormat + + /// + /// Gets an OpenTK.Graphics.ColorFormat that describes the color format for this GraphicsFormat. + /// + public ColorDepth ColorFormat + { + get { return color_format; } + private set { color_format = value; } + } + + #endregion + + #region public int AccumulatorFormat + + /// + /// Gets an OpenTK.Graphics.ColorFormat that describes the accumulator format for this GraphicsFormat. + /// + public ColorDepth AccumulatorFormat + { + get { return accumulator_format; } + private set { accumulator_format = value; } + } + + #endregion + + #region public int Depth + + /// + /// Gets a System.Int32 that contains the bits per pixel for the depth buffer + /// for this GraphicsFormat. + /// + public int Depth + { + get { return depth; } + private set { depth = value; } + } + + #endregion + + #region public int Stencil + + /// + /// Gets a System.Int32 that contains the bits per pixel for the stencil buffer + /// of this GraphicsFormat. + /// + public int Stencil + { + get { return stencil; } + private set { stencil = value; } + } + + #endregion + + /// + /// Gets a System.Int32 that contains the number of FSAA samples per pixel for this GraphicsFormat. + /// + public int Samples + { + get { return samples; } + private set { samples = value; } + } + + #region public bool Stereo + + /// + /// Gets a System.Boolean indicating whether this DisplayMode is stereoscopic. + /// + public bool Stereo + { + get { return this.stereo; } + private set { this.stereo = value; } + } + + #endregion + + #region public int Buffers + + /// + /// Gets a System.Int32 containing the number of buffers associated with this + /// DisplayMode. + /// + public int Buffers + { + get { return this.buffers; } + private set { this.buffers = value; } + } + + #endregion + + #region public static GraphicsFormat Default + + /// Returns an OpenTK.GraphicsFormat compatible with the underlying platform. + public static GraphicsMode Default + { + get { return new GraphicsMode(DisplayDevice.PrimaryDisplay.BitsPerPixel, 16, 0, 0, 0, 2, false); } + } + + #endregion + + #endregion + + #region --- Overrides --- + + /// Returns a System.String describing the current GraphicsFormat. + /// ! System.String describing the current GraphicsFormat. + public override string ToString() + { + return String.Format("Color: {0}, Depth: {1}, Stencil: {2}, Samples: {3}, Accum: {4}, Buffers: {5}, Stereo: {6}", + ColorFormat, Depth, Stereo, Samples, AccumulatorFormat, Buffers, Stereo); + } + + #endregion + } +}