123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- //-----------------------------------------------------------------------------
- // Copyright (c) 2012 GarageGames, LLC
- //
- // Permission is hereby granted, free of charge, to any person obtaining a copy
- // of this software and associated documentation files (the "Software"), to
- // deal in the Software without restriction, including without limitation the
- // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- // sell copies of the Software, and to permit persons to whom the Software is
- // furnished to do so, subject to the following conditions:
- //
- // The above copyright notice and this permission notice shall be included in
- // all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- // IN THE SOFTWARE.
- //-----------------------------------------------------------------------------
- #include "gfx/gfxAPI.h"
- IMPLEMENT_SCOPE( GFXAPI, GFX,,
- "Graphics subystem." );
- IMPLEMENT_STRUCT( GFXVideoMode,
- GFXVideoMode, GFXAPI,
- "Descriptor for a specific video mode." )
- FIELD( resolution, resolution, 1, "Width and height of the mode's resolution in pixels." )
- FIELD( bitDepth, bitDepth, 1, "Bits per pixel." )
- FIELD( refreshRate, refreshRate, 1, "Frequency at which the screen is refreshed (in Hertz)." )
- FIELD( fullScreen, fullScreen, 1, "Whether this is a fullscreen or windowed mode." )
- FIELD( wideScreen, wideScreen, 1, "Whether this is a widescreen display mode." )
- FIELD( antialiasLevel, antialiasLevel, 1, "Maximum or desired antialiasing level." )
- END_IMPLEMENT_STRUCT;
- ImplementEnumType( GFXAdapterType,
- "Back-end graphics API used by the GFX subsystem.\n\n"
- "@ingroup GFX" )
- { OpenGL, "OpenGL", "OpenGL." },
- { Direct3D11, "D3D11", "Direct3D 11." },
- { NullDevice, "NullDevice", "Null device for dedicated servers." }
- EndImplementEnumType;
- ImplementEnumType( GFXBlend,
- "The supported blend modes.\n"
- "@ingroup GFX" )
- { GFXBlendZero, "GFXBlendZero", "(0, 0, 0, 0)" },
- { GFXBlendOne, "GFXBlendOne", "(1, 1, 1, 1)" },
- { GFXBlendSrcColor, "GFXBlendSrcColor", "(Rs, Gs, Bs, As)" },
- { GFXBlendInvSrcColor, "GFXBlendInvSrcColor", "(1 - Rs, 1 - Gs, 1 - Bs, 1 - As)" },
- { GFXBlendSrcAlpha, "GFXBlendSrcAlpha", "(As, As, As, As)" },
- { GFXBlendInvSrcAlpha, "GFXBlendInvSrcAlpha", "( 1 - As, 1 - As, 1 - As, 1 - As)" },
- { GFXBlendDestAlpha, "GFXBlendDestAlpha", "(Ad Ad Ad Ad)" },
- { GFXBlendInvDestAlpha, "GFXBlendInvDestAlpha", "(1 - Ad 1 - Ad 1 - Ad 1 - Ad)" },
- { GFXBlendDestColor, "GFXBlendDestColor", "(Rd, Gd, Bd, Ad)" },
- { GFXBlendInvDestColor, "GFXBlendInvDestColor", "(1 - Rd, 1 - Gd, 1 - Bd, 1 - Ad)" },
- { GFXBlendSrcAlphaSat, "GFXBlendSrcAlphaSat", "(f, f, f, 1) where f = min(As, 1 - Ad)" }
- EndImplementEnumType;
- ImplementEnumType( GFXCmpFunc,
- "The supported comparison functions.\n"
- "@ingroup GFX" )
- { GFXCmpNever, "GFXCmpNever" },
- { GFXCmpLess, "GFXCmpLess" },
- { GFXCmpEqual, "GFXCmpEqual" },
- { GFXCmpLessEqual, "GFXCmpLessEqual" },
- { GFXCmpGreater, "GFXCmpGreater" },
- { GFXCmpNotEqual, "GFXCmpNotEqual" },
- { GFXCmpGreaterEqual, "GFXCmpGreaterEqual" },
- { GFXCmpAlways, "GFXCmpAlways" },
- EndImplementEnumType;
- ImplementEnumType( GFXTextureAddressMode,
- "The texture address modes.\n"
- "@ingroup GFX" )
- { GFXAddressWrap, "GFXAddressWrap" },
- { GFXAddressMirror, "GFXAddressMirror" },
- { GFXAddressClamp, "GFXAddressClamp" },
- { GFXAddressBorder, "GFXAddressBorder" },
- { GFXAddressMirrorOnce, "GFXAddressMirrorOnce" }
- EndImplementEnumType;
- ImplementEnumType( GFXTextureFilterType,
- "The texture filter types.\n"
- "@ingroup GFX" )
- { GFXTextureFilterNone, "GFXTextureFilterNone" },
- { GFXTextureFilterPoint, "GFXTextureFilterPoint" },
- { GFXTextureFilterLinear, "GFXTextureFilterLinear" },
- { GFXTextureFilterAnisotropic, "GFXTextureFilterAnisotropic" },
- EndImplementEnumType;
- ImplementEnumType( GFXFormat,
- "The texture formats.\n"
- "@note Not all formats are supported on all platforms.\n"
- "@ingroup GFX" )
- { GFXFormatR8G8B8, "GFXFormatR8G8B8" },
- { GFXFormatR8G8B8A8, "GFXFormatR8G8B8A8" },
- { GFXFormatR8G8B8A8_SRGB, "GFXFormatR8G8B8A8_SRGB" },
- { GFXFormatR8G8B8X8, "GFXFormatR8G8B8X8" },
- { GFXFormatR32F, "GFXFormatR32F" },
- { GFXFormatR5G6B5, "GFXFormatR5G6B5" },
- { GFXFormatR5G5B5A1, "GFXFormatR5G5B5A1" },
- { GFXFormatR5G5B5X1, "GFXFormatR5G5B5X1" },
- { GFXFormatA4L4, "GFXFormatA4L4" },
- { GFXFormatA8L8, "GFXFormatA8L8" },
- { GFXFormatA8, "GFXFormatA8" },
- { GFXFormatL8, "GFXFormatL8" },
- { GFXFormatBC1, "GFXFormatBC1" },
- { GFXFormatBC2, "GFXFormatBC2" },
- { GFXFormatBC3, "GFXFormatBC3" },
- { GFXFormatBC4, "GFXFormatBC4" },
- { GFXFormatBC5, "GFXFormatBC5" },
- { GFXFormatD32, "GFXFormatD32" },
- { GFXFormatD24X8, "GFXFormatD24X8" },
- { GFXFormatD24S8, "GFXFormatD24S8" },
- { GFXFormatD24FS8, "GFXFormatD24FS8" },
- { GFXFormatD16, "GFXFormatD16" },
- { GFXFormatR32G32B32A32F, "GFXFormatR32G32B32A32F" },
- { GFXFormatR16G16B16A16F, "GFXFormatR16G16B16A16F" },
- { GFXFormatL16, "GFXFormatL16" },
- { GFXFormatR16G16B16A16, "GFXFormatR16G16B16A16" },
- { GFXFormatR16G16, "GFXFormatR16G16" },
- { GFXFormatR16F, "GFXFormatR16F" },
- { GFXFormatR16G16F, "GFXFormatR16G16F" },
- { GFXFormatR10G10B10A2, "GFXFormatR10G10B10A2" },
- EndImplementEnumType;
- ImplementEnumType( GFXCullMode,
- "The render cull modes.\n"
- "@ingroup GFX" )
- { GFXCullNone, "GFXCullNone" },
- { GFXCullCW, "GFXCullCW" },
- { GFXCullCCW, "GFXCullCCW" }
- EndImplementEnumType;
- ImplementEnumType( GFXStencilOp,
- "The stencil operators.\n"
- "@ingroup GFX" )
- { GFXStencilOpKeep, "GFXStencilOpKeep" },
- { GFXStencilOpZero, "GFXStencilOpZero" },
- { GFXStencilOpReplace, "GFXStencilOpReplace" },
- { GFXStencilOpIncrSat, "GFXStencilOpIncrSat" },
- { GFXStencilOpDecrSat, "GFXStencilOpDecrSat" },
- { GFXStencilOpInvert, "GFXStencilOpInvert" },
- { GFXStencilOpIncr, "GFXStencilOpIncr" },
- { GFXStencilOpDecr, "GFXStencilOpDecr" },
- EndImplementEnumType;
- ImplementEnumType( GFXBlendOp,
- "The blend operators.\n"
- "@ingroup GFX" )
- { GFXBlendOpAdd, "GFXBlendOpAdd" },
- { GFXBlendOpSubtract, "GFXBlendOpSubtract" },
- { GFXBlendOpRevSubtract, "GFXBlendOpRevSubtract" },
- { GFXBlendOpMin, "GFXBlendOpMin" },
- { GFXBlendOpMax, "GFXBlendOpMax" }
- EndImplementEnumType;
|