2014-05-03 15:18:28 -07:00
/*
2015-01-01 15:04:46 -08:00
* Copyright 2011 - 2015 Branimir Karadzic . All rights reserved .
2014-05-03 15:18:28 -07:00
* License : http : //www.opensource.org/licenses/BSD-2-Clause
*/
# ifndef BGFX_UTILS_H_HEADER_GUARD
# define BGFX_UTILS_H_HEADER_GUARD
# include <bgfx.h>
2015-01-22 21:01:09 -08:00
void * load ( const char * _filePath , uint32_t * _size = NULL ) ;
2014-05-10 20:51:44 -07:00
bgfx : : ShaderHandle loadShader ( const char * _name ) ;
2014-05-03 15:18:28 -07:00
bgfx : : ProgramHandle loadProgram ( const char * _vsName , const char * _fsName ) ;
bgfx : : TextureHandle loadTexture ( const char * _name , uint32_t _flags = BGFX_TEXTURE_NONE , uint8_t _skip = 0 , bgfx : : TextureInfo * _info = NULL ) ;
void calcTangents ( void * _vertices , uint16_t _numVertices , bgfx : : VertexDecl _decl , const uint16_t * _indices , uint32_t _numIndices ) ;
2015-01-07 22:36:36 -08:00
struct MeshState
{
struct Texture
{
uint32_t m_flags ;
bgfx : : UniformHandle m_sampler ;
bgfx : : TextureHandle m_texture ;
uint8_t m_stage ;
} ;
Texture m_textures [ 4 ] ;
uint64_t m_state ;
bgfx : : ProgramHandle m_program ;
uint8_t m_numTextures ;
uint8_t m_viewId ;
} ;
2014-05-03 15:18:28 -07:00
struct Mesh ;
2015-01-07 22:36:36 -08:00
2014-05-03 15:18:28 -07:00
Mesh * meshLoad ( const char * _filePath ) ;
void meshUnload ( Mesh * _mesh ) ;
2015-01-07 22:36:36 -08:00
MeshState * meshStateCreate ( ) ;
void meshStateDestroy ( MeshState * _meshState ) ;
void meshSubmit ( const Mesh * _mesh , uint8_t _id , bgfx : : ProgramHandle _program , const float * _mtx , uint64_t _state = BGFX_STATE_MASK ) ;
void meshSubmit ( const Mesh * _mesh , const MeshState * const * _state , uint8_t _numPasses , const float * _mtx , uint16_t _numMatrices = 1 ) ;
2014-05-03 15:18:28 -07:00
# endif // BGFX_UTILS_H_HEADER_GUARD