1ba0570efef84d98117e1acb3762b9b58652c516adaniel@transgaming.com// 2fd39655df035e8a5f7c6feaa97e950cde85a84aeNicolas Capens// Copyright (c) 2012-2013 The ANGLE Project Authors. All rights reserved. 3ba0570efef84d98117e1acb3762b9b58652c516adaniel@transgaming.com// Use of this source code is governed by a BSD-style license that can be 4ba0570efef84d98117e1acb3762b9b58652c516adaniel@transgaming.com// found in the LICENSE file. 5ba0570efef84d98117e1acb3762b9b58652c516adaniel@transgaming.com// 6ba0570efef84d98117e1acb3762b9b58652c516adaniel@transgaming.com 7ef19da5a7d1dfaa91da55d87d70a0cca5d681426daniel@transgaming.com// angletypes.h : Defines a variety of structures and enum types that are used throughout libGLESv2 8ba0570efef84d98117e1acb3762b9b58652c516adaniel@transgaming.com 9ef19da5a7d1dfaa91da55d87d70a0cca5d681426daniel@transgaming.com#ifndef LIBGLESV2_ANGLETYPES_H_ 10ef19da5a7d1dfaa91da55d87d70a0cca5d681426daniel@transgaming.com#define LIBGLESV2_ANGLETYPES_H_ 11ba0570efef84d98117e1acb3762b9b58652c516adaniel@transgaming.com 12da507fea063b882095bd54753cabc685ffdb575dGeoff Lang#include "libGLESv2/constants.h" 13950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill#include "common/RefCountObject.h" 14da507fea063b882095bd54753cabc685ffdb575dGeoff Lang 15ba0570efef84d98117e1acb3762b9b58652c516adaniel@transgaming.comnamespace gl 16ba0570efef84d98117e1acb3762b9b58652c516adaniel@transgaming.com{ 17950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madillclass Buffer; 183078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madillclass ProgramBinary; 195bf98290459ca4ccab2f5be62f5fba2337fe8b7aBrandon Jonesstruct VertexAttribute; 203078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madillstruct VertexAttribCurrentValueData; 21ba0570efef84d98117e1acb3762b9b58652c516adaniel@transgaming.com 22ba0570efef84d98117e1acb3762b9b58652c516adaniel@transgaming.comenum SamplerType 23ba0570efef84d98117e1acb3762b9b58652c516adaniel@transgaming.com{ 24ba0570efef84d98117e1acb3762b9b58652c516adaniel@transgaming.com SAMPLER_PIXEL, 25ba0570efef84d98117e1acb3762b9b58652c516adaniel@transgaming.com SAMPLER_VERTEX 26ba0570efef84d98117e1acb3762b9b58652c516adaniel@transgaming.com}; 27ba0570efef84d98117e1acb3762b9b58652c516adaniel@transgaming.com 282a64ee4479728d804e1ecd8d0d10e83f00cf4f29Geoff Langtemplate <typename T> 29d0db35080360ae03589dd366266eed0a9b1f422bdaniel@transgaming.comstruct Color 30d0db35080360ae03589dd366266eed0a9b1f422bdaniel@transgaming.com{ 312a64ee4479728d804e1ecd8d0d10e83f00cf4f29Geoff Lang T red; 322a64ee4479728d804e1ecd8d0d10e83f00cf4f29Geoff Lang T green; 332a64ee4479728d804e1ecd8d0d10e83f00cf4f29Geoff Lang T blue; 342a64ee4479728d804e1ecd8d0d10e83f00cf4f29Geoff Lang T alpha; 357b7bc36ad672c624e04f56b0c3900ff96278c3dfGeoff Lang 367b7bc36ad672c624e04f56b0c3900ff96278c3dfGeoff Lang Color() : red(0), green(0), blue(0), alpha(0) { } 377b7bc36ad672c624e04f56b0c3900ff96278c3dfGeoff Lang Color(T r, T g, T b, T a) : red(r), green(g), blue(b), alpha(a) { } 38d0db35080360ae03589dd366266eed0a9b1f422bdaniel@transgaming.com}; 39c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com 402a64ee4479728d804e1ecd8d0d10e83f00cf4f29Geoff Langtypedef Color<float> ColorF; 412a64ee4479728d804e1ecd8d0d10e83f00cf4f29Geoff Langtypedef Color<int> ColorI; 422a64ee4479728d804e1ecd8d0d10e83f00cf4f29Geoff Langtypedef Color<unsigned int> ColorUI; 432a64ee4479728d804e1ecd8d0d10e83f00cf4f29Geoff Lang 441e34fde54edf4c9f27892ba1f3ceff1ff807bab1daniel@transgaming.comstruct Rectangle 451e34fde54edf4c9f27892ba1f3ceff1ff807bab1daniel@transgaming.com{ 461e34fde54edf4c9f27892ba1f3ceff1ff807bab1daniel@transgaming.com int x; 471e34fde54edf4c9f27892ba1f3ceff1ff807bab1daniel@transgaming.com int y; 481e34fde54edf4c9f27892ba1f3ceff1ff807bab1daniel@transgaming.com int width; 491e34fde54edf4c9f27892ba1f3ceff1ff807bab1daniel@transgaming.com int height; 507b7bc36ad672c624e04f56b0c3900ff96278c3dfGeoff Lang 517b7bc36ad672c624e04f56b0c3900ff96278c3dfGeoff Lang Rectangle() : x(0), y(0), width(0), height(0) { } 527b7bc36ad672c624e04f56b0c3900ff96278c3dfGeoff Lang Rectangle(int x_in, int y_in, int width_in, int height_in) : x(x_in), y(y_in), width(width_in), height(height_in) { } 531e34fde54edf4c9f27892ba1f3ceff1ff807bab1daniel@transgaming.com}; 541e34fde54edf4c9f27892ba1f3ceff1ff807bab1daniel@transgaming.com 55125deab6241c659dab0c9bb9f55c08daecc2f534Geoff Langbool ClipRectangle(const Rectangle &source, const Rectangle &clip, Rectangle *intersection); 56125deab6241c659dab0c9bb9f55c08daecc2f534Geoff Lang 577b61d5cebbe98e9aeb322aaa307e9fcd4c7c682bshannonwoods@chromium.orgstruct Box 587b61d5cebbe98e9aeb322aaa307e9fcd4c7c682bshannonwoods@chromium.org{ 597b61d5cebbe98e9aeb322aaa307e9fcd4c7c682bshannonwoods@chromium.org int x; 607b61d5cebbe98e9aeb322aaa307e9fcd4c7c682bshannonwoods@chromium.org int y; 617b61d5cebbe98e9aeb322aaa307e9fcd4c7c682bshannonwoods@chromium.org int z; 627b61d5cebbe98e9aeb322aaa307e9fcd4c7c682bshannonwoods@chromium.org int width; 637b61d5cebbe98e9aeb322aaa307e9fcd4c7c682bshannonwoods@chromium.org int height; 647b61d5cebbe98e9aeb322aaa307e9fcd4c7c682bshannonwoods@chromium.org int depth; 657b7bc36ad672c624e04f56b0c3900ff96278c3dfGeoff Lang 667b7bc36ad672c624e04f56b0c3900ff96278c3dfGeoff Lang Box() : x(0), y(0), z(0), width(0), height(0), depth(0) { } 677b7bc36ad672c624e04f56b0c3900ff96278c3dfGeoff Lang Box(int x_in, int y_in, int z_in, int width_in, int height_in, int depth_in) : x(x_in), y(y_in), z(z_in), width(width_in), height(height_in), depth(depth_in) { } 687b7bc36ad672c624e04f56b0c3900ff96278c3dfGeoff Lang}; 697b7bc36ad672c624e04f56b0c3900ff96278c3dfGeoff Lang 707b7bc36ad672c624e04f56b0c3900ff96278c3dfGeoff Langstruct Extents 717b7bc36ad672c624e04f56b0c3900ff96278c3dfGeoff Lang{ 727b7bc36ad672c624e04f56b0c3900ff96278c3dfGeoff Lang int width; 737b7bc36ad672c624e04f56b0c3900ff96278c3dfGeoff Lang int height; 747b7bc36ad672c624e04f56b0c3900ff96278c3dfGeoff Lang int depth; 757b7bc36ad672c624e04f56b0c3900ff96278c3dfGeoff Lang 767b7bc36ad672c624e04f56b0c3900ff96278c3dfGeoff Lang Extents() : width(0), height(0), depth(0) { } 777b7bc36ad672c624e04f56b0c3900ff96278c3dfGeoff Lang Extents(int width_, int height_, int depth_) : width(width_), height(height_), depth(depth_) { } 787b61d5cebbe98e9aeb322aaa307e9fcd4c7c682bshannonwoods@chromium.org}; 797b61d5cebbe98e9aeb322aaa307e9fcd4c7c682bshannonwoods@chromium.org 80c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.comstruct RasterizerState 81c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com{ 82c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com bool cullFace; 83c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLenum cullMode; 84c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLenum frontFace; 85c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com 86c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com bool polygonOffsetFill; 87c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLfloat polygonOffsetFactor; 88c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLfloat polygonOffsetUnits; 89dd2524c46ed4689c27adf3f9959435fd2906b621shannon.woods@transgaming.com 90dd2524c46ed4689c27adf3f9959435fd2906b621shannon.woods@transgaming.com bool pointDrawMode; 91fd39655df035e8a5f7c6feaa97e950cde85a84aeNicolas Capens bool multiSample; 920550d0389a59a50a1df0df3484ecefc864715e26Geoff Lang 930550d0389a59a50a1df0df3484ecefc864715e26Geoff Lang bool rasterizerDiscard; 94c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com}; 95c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com 96c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.comstruct BlendState 97c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com{ 98c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com bool blend; 99c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLenum sourceBlendRGB; 100c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLenum destBlendRGB; 101c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLenum sourceBlendAlpha; 102c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLenum destBlendAlpha; 103c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLenum blendEquationRGB; 104c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLenum blendEquationAlpha; 105c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com 106c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com bool colorMaskRed; 107c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com bool colorMaskGreen; 108c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com bool colorMaskBlue; 109c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com bool colorMaskAlpha; 110c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com 111c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com bool sampleAlphaToCoverage; 112c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com 113c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com bool dither; 114c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com}; 115c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com 116c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.comstruct DepthStencilState 117c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com{ 118c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com bool depthTest; 119c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLenum depthFunc; 120c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com bool depthMask; 121c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com 122c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com bool stencilTest; 123c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLenum stencilFunc; 124c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLuint stencilMask; 125c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLenum stencilFail; 126c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLenum stencilPassDepthFail; 127c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLenum stencilPassDepthPass; 128c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLuint stencilWritemask; 129c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLenum stencilBackFunc; 130c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLuint stencilBackMask; 131c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLenum stencilBackFail; 132c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLenum stencilBackPassDepthFail; 133c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLenum stencilBackPassDepthPass; 134c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com GLuint stencilBackWritemask; 135c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com}; 136c8b8f2832435209bc3b8969eaf0eec2ccf3d1432daniel@transgaming.com 1378bc304a1c6297dba9c17985e1dbab6a0ece437efdaniel@transgaming.comstruct SamplerState 1388bc304a1c6297dba9c17985e1dbab6a0ece437efdaniel@transgaming.com{ 139a328d5698ad6668352187e15a6226cef08640eecBrandon Jones SamplerState(); 140a328d5698ad6668352187e15a6226cef08640eecBrandon Jones 1418bc304a1c6297dba9c17985e1dbab6a0ece437efdaniel@transgaming.com GLenum minFilter; 1428bc304a1c6297dba9c17985e1dbab6a0ece437efdaniel@transgaming.com GLenum magFilter; 1438bc304a1c6297dba9c17985e1dbab6a0ece437efdaniel@transgaming.com GLenum wrapS; 1448bc304a1c6297dba9c17985e1dbab6a0ece437efdaniel@transgaming.com GLenum wrapT; 1450b3a8dfb1e698f7ba69708f9f1bbe73179dcd07eshannon.woods%transgaming.com@gtempaccount.com GLenum wrapR; 1468bc304a1c6297dba9c17985e1dbab6a0ece437efdaniel@transgaming.com float maxAnisotropy; 1478de682870a82cad54f3fffe5c6723e858656f7e2Nicolas Capens 1488de682870a82cad54f3fffe5c6723e858656f7e2Nicolas Capens GLint baseLevel; 1498de682870a82cad54f3fffe5c6723e858656f7e2Nicolas Capens GLint maxLevel; 1508de682870a82cad54f3fffe5c6723e858656f7e2Nicolas Capens GLfloat minLod; 1518de682870a82cad54f3fffe5c6723e858656f7e2Nicolas Capens GLfloat maxLod; 152c82fc41362dae28c98b16c76dda04e2988a02de1Geoff Lang 153c82fc41362dae28c98b16c76dda04e2988a02de1Geoff Lang GLenum compareMode; 154c82fc41362dae28c98b16c76dda04e2988a02de1Geoff Lang GLenum compareFunc; 155bc90a4804f58d2b24babe6f247db57b9a6cdc58fGeoff Lang 156bc90a4804f58d2b24babe6f247db57b9a6cdc58fGeoff Lang GLenum swizzleRed; 157bc90a4804f58d2b24babe6f247db57b9a6cdc58fGeoff Lang GLenum swizzleGreen; 158bc90a4804f58d2b24babe6f247db57b9a6cdc58fGeoff Lang GLenum swizzleBlue; 159bc90a4804f58d2b24babe6f247db57b9a6cdc58fGeoff Lang GLenum swizzleAlpha; 16076b258f88ebb47cf1022ae6b4392f220a56383d4Nicolas Capens 16176b258f88ebb47cf1022ae6b4392f220a56383d4Nicolas Capens bool swizzleRequired() const; 1628bc304a1c6297dba9c17985e1dbab6a0ece437efdaniel@transgaming.com}; 1638bc304a1c6297dba9c17985e1dbab6a0ece437efdaniel@transgaming.com 1647436971e9cccbd9992cbc7e75356d7e61b8053d9daniel@transgaming.comstruct ClearParameters 1657436971e9cccbd9992cbc7e75356d7e61b8053d9daniel@transgaming.com{ 166da507fea063b882095bd54753cabc685ffdb575dGeoff Lang bool clearColor[gl::IMPLEMENTATION_MAX_DRAW_BUFFERS]; 167da507fea063b882095bd54753cabc685ffdb575dGeoff Lang ColorF colorFClearValue; 168da507fea063b882095bd54753cabc685ffdb575dGeoff Lang ColorI colorIClearValue; 169da507fea063b882095bd54753cabc685ffdb575dGeoff Lang ColorUI colorUIClearValue; 170da507fea063b882095bd54753cabc685ffdb575dGeoff Lang GLenum colorClearType; 1717436971e9cccbd9992cbc7e75356d7e61b8053d9daniel@transgaming.com bool colorMaskRed; 1727436971e9cccbd9992cbc7e75356d7e61b8053d9daniel@transgaming.com bool colorMaskGreen; 1737436971e9cccbd9992cbc7e75356d7e61b8053d9daniel@transgaming.com bool colorMaskBlue; 1747436971e9cccbd9992cbc7e75356d7e61b8053d9daniel@transgaming.com bool colorMaskAlpha; 1757436971e9cccbd9992cbc7e75356d7e61b8053d9daniel@transgaming.com 176da507fea063b882095bd54753cabc685ffdb575dGeoff Lang bool clearDepth; 1777436971e9cccbd9992cbc7e75356d7e61b8053d9daniel@transgaming.com float depthClearValue; 1787436971e9cccbd9992cbc7e75356d7e61b8053d9daniel@transgaming.com 179da507fea063b882095bd54753cabc685ffdb575dGeoff Lang bool clearStencil; 1807436971e9cccbd9992cbc7e75356d7e61b8053d9daniel@transgaming.com GLint stencilClearValue; 1817436971e9cccbd9992cbc7e75356d7e61b8053d9daniel@transgaming.com GLuint stencilWriteMask; 182da507fea063b882095bd54753cabc685ffdb575dGeoff Lang 183da507fea063b882095bd54753cabc685ffdb575dGeoff Lang bool scissorEnabled; 184da507fea063b882095bd54753cabc685ffdb575dGeoff Lang Rectangle scissor; 1857436971e9cccbd9992cbc7e75356d7e61b8053d9daniel@transgaming.com}; 1867436971e9cccbd9992cbc7e75356d7e61b8053d9daniel@transgaming.com 187950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madillstruct PixelUnpackState 188950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill{ 189950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill BindingPointer<Buffer> pixelBuffer; 190950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill GLint alignment; 191950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill 192950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill PixelUnpackState() 193950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill : alignment(4) 194950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill {} 195950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill 196950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill explicit PixelUnpackState(GLint alignmentIn) 197950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill : alignment(alignmentIn) 198950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill {} 199950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill}; 200950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill 201950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madillstruct PixelPackState 202950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill{ 203950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill BindingPointer<Buffer> pixelBuffer; 204950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill GLint alignment; 205950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill bool reverseRowOrder; 206950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill 207950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill PixelPackState() 208950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill : alignment(4), 209950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill reverseRowOrder(false) 210950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill {} 211950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill 212950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill explicit PixelPackState(GLint alignmentIn, bool reverseRowOrderIn) 213950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill : alignment(alignmentIn), 214950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill reverseRowOrder(reverseRowOrderIn) 215950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill {} 216950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill}; 217950a775ecc8d7352a5d2f76b719416acdc4706a0Jamie Madill 2183078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madillstruct VertexFormat 2193078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill{ 2203078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill GLenum mType; 2213078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill GLboolean mNormalized; 2223078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill GLuint mComponents; 2233078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill bool mPureInteger; 2243078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill 2253078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill VertexFormat(); 2263078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill VertexFormat(GLenum type, GLboolean normalized, GLuint components, bool pureInteger); 2273078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill explicit VertexFormat(const VertexAttribute &attribute); 2283078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill VertexFormat(const VertexAttribute &attribute, GLenum currentValueType); 2293078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill 2303078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill static void GetInputLayout(VertexFormat *inputLayout, 2313078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill ProgramBinary *programBinary, 2323078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill const VertexAttribute *attributes, 2333078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill const gl::VertexAttribCurrentValueData *currentValues); 2343078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill 2353078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill bool operator==(const VertexFormat &other) const; 2363078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill bool operator!=(const VertexFormat &other) const; 2373078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill bool operator<(const VertexFormat& other) const; 2383078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill}; 2393078d0f718b27d541d2314bf9a30bbcc94e7f2e6Jamie Madill 240ba0570efef84d98117e1acb3762b9b58652c516adaniel@transgaming.com} 241ba0570efef84d98117e1acb3762b9b58652c516adaniel@transgaming.com 2427ab02fafb5de8cabadaa5eff10e473e79f9b027eJamie Madillnamespace rx 2437ab02fafb5de8cabadaa5eff10e473e79f9b027eJamie Madill{ 2447ab02fafb5de8cabadaa5eff10e473e79f9b027eJamie Madill 2457ab02fafb5de8cabadaa5eff10e473e79f9b027eJamie Madillenum VertexConversionType 2467ab02fafb5de8cabadaa5eff10e473e79f9b027eJamie Madill{ 2477ab02fafb5de8cabadaa5eff10e473e79f9b027eJamie Madill VERTEX_CONVERT_NONE = 0, 2487ab02fafb5de8cabadaa5eff10e473e79f9b027eJamie Madill VERTEX_CONVERT_CPU = 1, 2497ab02fafb5de8cabadaa5eff10e473e79f9b027eJamie Madill VERTEX_CONVERT_GPU = 2, 2507ab02fafb5de8cabadaa5eff10e473e79f9b027eJamie Madill VERTEX_CONVERT_BOTH = 3 2517ab02fafb5de8cabadaa5eff10e473e79f9b027eJamie Madill}; 2527ab02fafb5de8cabadaa5eff10e473e79f9b027eJamie Madill 2535f562735860c4415b09db11c27070d3503d687aaJamie Madillenum D3DWorkaroundType 2545f562735860c4415b09db11c27070d3503d687aaJamie Madill{ 2555f562735860c4415b09db11c27070d3503d687aaJamie Madill ANGLE_D3D_WORKAROUND_NONE, 256655fe36e254e7f11e79a4fad4febd5d768194c35Nicolas Capens ANGLE_D3D_WORKAROUND_SKIP_OPTIMIZATION, 257655fe36e254e7f11e79a4fad4febd5d768194c35Nicolas Capens ANGLE_D3D_WORKAROUND_MAX_OPTIMIZATION 2585f562735860c4415b09db11c27070d3503d687aaJamie Madill}; 2595f562735860c4415b09db11c27070d3503d687aaJamie Madill 2607ab02fafb5de8cabadaa5eff10e473e79f9b027eJamie Madill} 2617ab02fafb5de8cabadaa5eff10e473e79f9b027eJamie Madill 262ef19da5a7d1dfaa91da55d87d70a0cca5d681426daniel@transgaming.com#endif // LIBGLESV2_ANGLETYPES_H_ 263