1a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block// 2a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved. 3a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block// Use of this source code is governed by a BSD-style license that can be 4a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block// found in the LICENSE file. 5a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block// 6a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 7a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block// utilities.h: Conversion functions and other utility routines. 8a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 9a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block#ifndef LIBGLESV2_UTILITIES_H 10a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block#define LIBGLESV2_UTILITIES_H 11a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 12a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block#define GL_APICALL 13a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block#include <GLES2/gl2.h> 145abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick#include <GLES2/gl2ext.h> 15a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block#include <d3d9.h> 16a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 17a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blocknamespace gl 18a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block{ 19a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 20a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockstruct Color; 21a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 22a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockint UniformComponentCount(GLenum type); 23a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve BlockGLenum UniformComponentType(GLenum type); 24a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blocksize_t UniformTypeSize(GLenum type); 25a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockint VariableRowCount(GLenum type); 26a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockint VariableColumnCount(GLenum type); 27a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 28a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockint AllocateFirstFreeBits(unsigned int *bits, unsigned int allocationSize, unsigned int bitsSize); 29a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 30a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockint ComputePixelSize(GLenum format, GLenum type); 31a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve BlockGLsizei ComputePitch(GLsizei width, GLenum format, GLenum type, GLint alignment); 325abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain MerrickGLsizei ComputeCompressedPitch(GLsizei width, GLenum format); 335abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain MerrickGLsizei ComputeCompressedSize(GLsizei width, GLsizei height, GLenum format); 345abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrickbool IsCompressed(GLenum format); 35a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockbool IsCubemapTextureTarget(GLenum target); 36a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockbool IsTextureTarget(GLenum target); 37a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockbool CheckTextureFormatType(GLenum format, GLenum type); 38a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 39ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdochbool IsColorRenderable(GLenum internalformat); 40ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdochbool IsDepthRenderable(GLenum internalformat); 41ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdochbool IsStencilRenderable(GLenum internalformat); 42ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 43a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block} 44a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 45a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blocknamespace es2dx 46a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block{ 47a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 48a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve BlockD3DCMPFUNC ConvertComparison(GLenum comparison); 49a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve BlockD3DCOLOR ConvertColor(gl::Color color); 50a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve BlockD3DBLEND ConvertBlendFunc(GLenum blend); 51a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve BlockD3DBLENDOP ConvertBlendOp(GLenum blendOp); 52a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve BlockD3DSTENCILOP ConvertStencilOp(GLenum stencilOp); 53a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve BlockD3DTEXTUREADDRESS ConvertTextureWrap(GLenum wrap); 54a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve BlockD3DCULL ConvertCullMode(GLenum cullFace, GLenum frontFace); 55a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve BlockDWORD ConvertColorMask(bool red, bool green, bool blue, bool alpha); 56a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve BlockD3DTEXTUREFILTERTYPE ConvertMagFilter(GLenum magFilter); 57a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockvoid ConvertMinFilter(GLenum minFilter, D3DTEXTUREFILTERTYPE *d3dMinFilter, D3DTEXTUREFILTERTYPE *d3dMipFilter); 58a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockunsigned int GetAlphaSize(D3DFORMAT colorFormat); 59a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockunsigned int GetRedSize(D3DFORMAT colorFormat); 60a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockunsigned int GetGreenSize(D3DFORMAT colorFormat); 61a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockunsigned int GetBlueSize(D3DFORMAT colorFormat); 62a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockunsigned int GetDepthSize(D3DFORMAT depthFormat); 63a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Blockunsigned int GetStencilSize(D3DFORMAT stencilFormat); 64ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdochbool ConvertPrimitiveType(GLenum primitiveType, GLsizei elementCount, 65a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block D3DPRIMITIVETYPE *d3dPrimitiveType, int *d3dPrimitiveCount); 66a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve BlockD3DFORMAT ConvertRenderbufferFormat(GLenum format); 675abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain MerrickD3DMULTISAMPLE_TYPE GetMultisampleTypeFromSamples(GLsizei samples); 685abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain MerrickGLsizei GetSamplesFromMultisampleType(D3DMULTISAMPLE_TYPE type); 69a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 70a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block} 71a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block 72ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdochnamespace dx2es 73ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch{ 74ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 75ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen MurdochGLenum ConvertBackBufferFormat(D3DFORMAT format); 76ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen MurdochGLenum ConvertDepthStencilFormat(D3DFORMAT format); 77ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 78ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch} 79ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 80a9bfd6c4a32dfd9cc032cb67c6ccb8d09c16f579Steve Block#endif // LIBGLESV2_UTILITIES_H 81