/* * Copyright 2011-2013 Branimir Karadzic. All rights reserved. * License: http://www.opensource.org/licenses/BSD-2-Clause */ #ifndef __BGFX_H__ #define __BGFX_H__ #include // uint32_t #include // size_t /// #define BGFX_STATE_DEPTH_WRITE UINT64_C(0x0000000000000001) #define BGFX_STATE_ALPHA_WRITE UINT64_C(0x0000000000000008) #define BGFX_STATE_ALPHA_MASK UINT64_C(0x000000000000000c) #define BGFX_STATE_DEPTH_TEST_LESS UINT64_C(0x0000000000000010) #define BGFX_STATE_DEPTH_TEST_LEQUAL UINT64_C(0x0000000000000020) #define BGFX_STATE_DEPTH_TEST_EQUAL UINT64_C(0x0000000000000030) #define BGFX_STATE_DEPTH_TEST_GEQUAL UINT64_C(0x0000000000000040) #define BGFX_STATE_DEPTH_TEST_GREATER UINT64_C(0x0000000000000050) #define BGFX_STATE_DEPTH_TEST_NOTEQUAL UINT64_C(0x0000000000000060) #define BGFX_STATE_DEPTH_TEST_NEVER UINT64_C(0x0000000000000070) #define BGFX_STATE_DEPTH_TEST_ALWAYS UINT64_C(0x0000000000000080) #define BGFX_STATE_DEPTH_TEST_SHIFT 4 #define BGFX_STATE_DEPTH_TEST_MASK UINT64_C(0x00000000000000f0) #define BGFX_STATE_BLEND_ZERO UINT64_C(0x0000000000001000) #define BGFX_STATE_BLEND_ONE UINT64_C(0x0000000000002000) #define BGFX_STATE_BLEND_SRC_COLOR UINT64_C(0x0000000000003000) #define BGFX_STATE_BLEND_INV_SRC_COLOR UINT64_C(0x0000000000004000) #define BGFX_STATE_BLEND_SRC_ALPHA UINT64_C(0x0000000000005000) #define BGFX_STATE_BLEND_INV_SRC_ALPHA UINT64_C(0x0000000000006000) #define BGFX_STATE_BLEND_DST_ALPHA UINT64_C(0x0000000000007000) #define BGFX_STATE_BLEND_INV_DST_ALPHA UINT64_C(0x0000000000008000) #define BGFX_STATE_BLEND_DST_COLOR UINT64_C(0x0000000000009000) #define BGFX_STATE_BLEND_INV_DST_COLOR UINT64_C(0x000000000000a000) #define BGFX_STATE_BLEND_SRC_ALPHA_SAT UINT64_C(0x000000000000b000) #define BGFX_STATE_BLEND_FACTOR UINT64_C(0x000000000000c000) #define BGFX_STATE_BLEND_INV_FACTOR UINT64_C(0x000000000000d000) #define BGFX_STATE_BLEND_SHIFT 12 #define BGFX_STATE_BLEND_MASK UINT64_C(0x00000000000ff000) #define BGFX_STATE_BLEND_EQUATION_SUB UINT64_C(0x0000000000100000) #define BGFX_STATE_BLEND_EQUATION_REVSUB UINT64_C(0x0000000000200000) #define BGFX_STATE_BLEND_EQUATION_MIN UINT64_C(0x0000000000300000) #define BGFX_STATE_BLEND_EQUATION_MAX UINT64_C(0x0000000000400000) #define BGFX_STATE_BLEND_EQUATION_SHIFT 20 #define BGFX_STATE_BLEND_EQUATION_MASK UINT64_C(0x0000000000700000) #define BGFX_STATE_CULL_CW UINT64_C(0x0000000010000000) #define BGFX_STATE_CULL_CCW UINT64_C(0x0000000020000000) #define BGFX_STATE_CULL_SHIFT 28 #define BGFX_STATE_CULL_MASK UINT64_C(0x0000000030000000) #define BGFX_STATE_RGB_WRITE UINT64_C(0x0000000040000000) #define BGFX_STATE_ALPHA_REF_SHIFT 32 #define BGFX_STATE_ALPHA_REF_MASK UINT64_C(0x000000ff00000000) #define BGFX_STATE_PT_LINES UINT64_C(0x0000010000000000) #define BGFX_STATE_PT_POINTS UINT64_C(0x0000020000000000) #define BGFX_STATE_PT_SHIFT 40 #define BGFX_STATE_PT_MASK UINT64_C(0x0000030000000000) #define BGFX_STATE_POINT_SIZE_SHIFT 44 #define BGFX_STATE_POINT_SIZE_MASK UINT64_C(0x000ff00000000000) #define BGFX_STATE_SRGBWRITE UINT64_C(0x0010000000000000) #define BGFX_STATE_MSAA UINT64_C(0x0020000000000000) #define BGFX_STATE_RESERVED_MASK UINT64_C(0xff00000000000000) #define BGFX_STATE_NONE UINT64_C(0x0000000000000000) #define BGFX_STATE_MASK UINT64_C(0xffffffffffffffff) #define BGFX_STATE_DEFAULT (0 \ | BGFX_STATE_RGB_WRITE \ | BGFX_STATE_ALPHA_WRITE \ | BGFX_STATE_DEPTH_TEST_LESS \ | BGFX_STATE_DEPTH_WRITE \ | BGFX_STATE_CULL_CW \ | BGFX_STATE_MSAA \ ) #define BGFX_STATE_ALPHA_REF(_ref) ( (uint64_t(_ref)<