DELETED src/win32/directx/d3d10.d Index: src/win32/directx/d3d10.d ================================================================== --- src/win32/directx/d3d10.d +++ src/win32/directx/d3d10.d @@ -1,1229 +0,0 @@ -/***********************************************************************\ -* d3d10.d * -* * -* Windows API header module * -* * -* Placed into public domain * -\***********************************************************************/ -module win32.directx.d3d10; - -private import win32.windows; - -public import win32.directx.dxgitype; -public import win32.directx.dxgi; -public import win32.directx.d3d10misc; - -pragma(lib, "d3d10.lib"); - -const D3D10_16BIT_INDEX_STRIP_CUT_VALUE = 0xffff; -const D3D10_32BIT_INDEX_STRIP_CUT_VALUE = 0xffffffff; -const D3D10_8BIT_INDEX_STRIP_CUT_VALUE = 0xff; -const D3D10_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT = 9; -const D3D10_CLIP_OR_CULL_DISTANCE_COUNT = 8; -const D3D10_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT = 2; -const D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT = 14; -const D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS = 4; -const D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT = 32; -const D3D10_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT = 15; -const D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4; -const D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT = 15; -const D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1; -const D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1; -const D3D10_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT = 64; -const D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4; -const D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT = 1; -const D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1; -const D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1; -const D3D10_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT = 32; -const D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS = 1; -const D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT = 128; -const D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST = 1; -const D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS = 1; -const D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT = 128; -const D3D10_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS = 1; -const D3D10_COMMONSHADER_SAMPLER_REGISTER_COUNT = 16; -const D3D10_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST = 1; -const D3D10_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS = 1; -const D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT = 16; -const D3D10_COMMONSHADER_SUBROUTINE_NESTING_LIMIT = 32; -const D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENTS = 4; -const D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT = 32; -const D3D10_COMMONSHADER_TEMP_REGISTER_COUNT = 4096; -const D3D10_COMMONSHADER_TEMP_REGISTER_READS_PER_INST = 3; -const D3D10_COMMONSHADER_TEMP_REGISTER_READ_PORTS = 3; -const D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX = 10; -const D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN = -10; -const D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE = -8; -const D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE = 7; -const D3D10_DEFAULT_BLEND_FACTOR_ALPHA = 1.0f; -const D3D10_DEFAULT_BLEND_FACTOR_BLUE = 1.0f; -const D3D10_DEFAULT_BLEND_FACTOR_GREEN = 1.0f; -const D3D10_DEFAULT_BLEND_FACTOR_RED = 1.0f; -const D3D10_DEFAULT_BORDER_COLOR_COMPONENT = 0.0f; -const D3D10_DEFAULT_DEPTH_BIAS = 0; -const D3D10_DEFAULT_DEPTH_BIAS_CLAMP = 0.0f; -const D3D10_DEFAULT_MAX_ANISOTROPY = 16.0f; -const D3D10_DEFAULT_MIP_LOD_BIAS = 0.0f; -const D3D10_DEFAULT_RENDER_TARGET_ARRAY_INDEX = 0; -const D3D10_DEFAULT_SAMPLE_MASK = 0xffffffff; -const D3D10_DEFAULT_SCISSOR_ENDX = 0; -const D3D10_DEFAULT_SCISSOR_ENDY = 0; -const D3D10_DEFAULT_SCISSOR_STARTX = 0; -const D3D10_DEFAULT_SCISSOR_STARTY = 0; -const D3D10_DEFAULT_SLOPE_SCALED_DEPTH_BIAS = 0.0f; -const D3D10_DEFAULT_STENCIL_READ_MASK = 0xff; -const D3D10_DEFAULT_STENCIL_REFERENCE = 0; -const D3D10_DEFAULT_STENCIL_WRITE_MASK = 0xff; -const D3D10_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX = 0; -const D3D10_DEFAULT_VIEWPORT_HEIGHT = 0; -const D3D10_DEFAULT_VIEWPORT_MAX_DEPTH = 0.0f; -const D3D10_DEFAULT_VIEWPORT_MIN_DEPTH = 0.0f; -const D3D10_DEFAULT_VIEWPORT_TOPLEFTX = 0; -const D3D10_DEFAULT_VIEWPORT_TOPLEFTY = 0; -const D3D10_DEFAULT_VIEWPORT_WIDTH = 0; -const D3D10_FLOAT16_FUSED_TOLERANCE_IN_ULP = 0.6; -const D3D10_FLOAT32_MAX = 3.402823466e+38f; -const D3D10_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP = 0.6f; -const D3D10_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR = 2.4f; -const D3D10_FLOAT_TO_SRGB_EXPONENT_NUMERATOR = 1.0f; -const D3D10_FLOAT_TO_SRGB_OFFSET = 0.055f; -const D3D10_FLOAT_TO_SRGB_SCALE_1 = 12.92f; -const D3D10_FLOAT_TO_SRGB_SCALE_2 = 1.055f; -const D3D10_FLOAT_TO_SRGB_THRESHOLD = 0.0031308f; -const D3D10_FTOI_INSTRUCTION_MAX_INPUT = 2147483647.999f; -const D3D10_FTOI_INSTRUCTION_MIN_INPUT = -2147483648.999f; -const D3D10_FTOU_INSTRUCTION_MAX_INPUT = 4294967295.999f; -const D3D10_FTOU_INSTRUCTION_MIN_INPUT = 0.0f; -const D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS = 1; -const D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT = 32; -const D3D10_GS_INPUT_PRIM_CONST_REGISTER_COUNT = 1; -const D3D10_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST = 2; -const D3D10_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS = 1; -const D3D10_GS_INPUT_REGISTER_COMPONENTS = 4; -const D3D10_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32; -const D3D10_GS_INPUT_REGISTER_COUNT = 16; -const D3D10_GS_INPUT_REGISTER_READS_PER_INST = 2; -const D3D10_GS_INPUT_REGISTER_READ_PORTS = 1; -const D3D10_GS_INPUT_REGISTER_VERTICES = 6; -const D3D10_GS_OUTPUT_ELEMENTS = 32; -const D3D10_GS_OUTPUT_REGISTER_COMPONENTS = 4; -const D3D10_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; -const D3D10_GS_OUTPUT_REGISTER_COUNT = 32; -const D3D10_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES = 0; -const D3D10_IA_DEFAULT_PRIMITIVE_TOPOLOGY = 0; -const D3D10_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES = 0; -const D3D10_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT = 1; -const D3D10_IA_INSTANCE_ID_BIT_COUNT = 32; -const D3D10_IA_INTEGER_ARITHMETIC_BIT_COUNT = 32; -const D3D10_IA_PRIMITIVE_ID_BIT_COUNT = 32; -const D3D10_IA_VERTEX_ID_BIT_COUNT = 32; -const D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 16; -const D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 64; -const D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 16; -const D3D10_INTEGER_DIVIDE_BY_ZERO_QUOTIENT = 0xffffffff; -const D3D10_INTEGER_DIVIDE_BY_ZERO_REMAINDER = 0xffffffff; -const D3D10_LINEAR_GAMMA = 1.0f; -const D3D10_MAX_BORDER_COLOR_COMPONENT = 1.0f; -const D3D10_MAX_DEPTH = 1.0f; -const D3D10_MAX_MAXANISOTROPY = 16; -const D3D10_MAX_MULTISAMPLE_SAMPLE_COUNT = 32; -const D3D10_MAX_POSITION_VALUE = 3.402823466e+34f; -const D3D10_MAX_TEXTURE_DIMENSION_2_TO_EXP = 17; -const D3D10_MIN_BORDER_COLOR_COMPONENT = 0.0f; -const D3D10_MIN_DEPTH = 0.0f; -const D3D10_MIN_MAXANISOTROPY = 0; -const D3D10_MIP_LOD_BIAS_MAX = 15.99f; -const D3D10_MIP_LOD_BIAS_MIN = -16.0f; -const D3D10_MIP_LOD_FRACTIONAL_BIT_COUNT = 6; -const D3D10_MIP_LOD_RANGE_BIT_COUNT = 8; -const D3D10_MULTISAMPLE_ANTIALIAS_LINE_WIDTH = 1.4f; -const D3D10_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT = 0; -const D3D10_PIXEL_ADDRESS_RANGE_BIT_COUNT = 13; -const D3D10_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT = 15; -const D3D10_PS_FRONTFACING_DEFAULT_VALUE = 0xffffffff; -const D3D10_PS_FRONTFACING_FALSE_VALUE = 0; -const D3D10_PS_FRONTFACING_TRUE_VALUE = 0xffffffff; -const D3D10_PS_INPUT_REGISTER_COMPONENTS = 4; -const D3D10_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32; -const D3D10_PS_INPUT_REGISTER_COUNT = 32; -const D3D10_PS_INPUT_REGISTER_READS_PER_INST = 2; -const D3D10_PS_INPUT_REGISTER_READ_PORTS = 1; -const D3D10_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT = 0.0f; -const D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS = 1; -const D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT = 32; -const D3D10_PS_OUTPUT_DEPTH_REGISTER_COUNT = 1; -const D3D10_PS_OUTPUT_REGISTER_COMPONENTS = 4; -const D3D10_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; -const D3D10_PS_OUTPUT_REGISTER_COUNT = 8; -const D3D10_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT = 0.5f; -const D3D10_REQ_BLEND_OBJECT_COUNT_PER_CONTEXT = 4096; -const D3D10_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP = 27; -const D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT = 4096; -const D3D10_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_CONTEXT = 4096; -const D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 32; -const D3D10_REQ_DRAW_VERTEX_COUNT_2_TO_EXP = 32; -const D3D10_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION = 8192; -const D3D10_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT = 1024; -const D3D10_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT = 4096; -const D3D10_REQ_MAXANISOTROPY = 16; -const D3D10_REQ_MIP_LEVELS = 14; -const D3D10_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES = 2048; -const D3D10_REQ_RASTERIZER_OBJECT_COUNT_PER_CONTEXT = 4096; -const D3D10_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH = 8192; -const D3D10_REQ_RESOURCE_SIZE_IN_MEGABYTES = 128; -const D3D10_REQ_RESOURCE_VIEW_COUNT_PER_CONTEXT_2_TO_EXP = 20; -const D3D10_REQ_SAMPLER_OBJECT_COUNT_PER_CONTEXT = 4096; -const D3D10_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION = 512; -const D3D10_REQ_TEXTURE1D_U_DIMENSION = 8192; -const D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION = 512; -const D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION = 8192; -const D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = 2048; -const D3D10_REQ_TEXTURECUBE_DIMENSION = 8192; -const D3D10_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL = 0; -const D3D10_SHADER_MAJOR_VERSION = 4; -const D3D10_SHADER_MINOR_VERSION = 0; -const D3D10_SHIFT_INSTRUCTION_PAD_VALUE = 0; -const D3D10_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT = 5; -const D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT = 8; -const D3D10_SO_BUFFER_MAX_STRIDE_IN_BYTES = 2048; -const D3D10_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = 256; -const D3D10_SO_BUFFER_SLOT_COUNT = 4; -const D3D10_SO_DDI_REGISTER_INDEX_DENOTING_GAP = 0xffffffff; -const D3D10_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER = 1; -const D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT = 64; -const D3D10_SRGB_GAMMA = 2.2f; -const D3D10_SRGB_TO_FLOAT_DENOMINATOR_1 = 12.92f; -const D3D10_SRGB_TO_FLOAT_DENOMINATOR_2 = 1.055f; -const D3D10_SRGB_TO_FLOAT_EXPONENT = 2.4f; -const D3D10_SRGB_TO_FLOAT_OFFSET = 0.055f; -const D3D10_SRGB_TO_FLOAT_THRESHOLD = 0.04045f; -const D3D10_SRGB_TO_FLOAT_TOLERANCE_IN_ULP = 0.5f; -const D3D10_STANDARD_COMPONENT_BIT_COUNT = 32; -const D3D10_STANDARD_COMPONENT_BIT_COUNT_DOUBLED = 64; -const D3D10_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE = 4; -const D3D10_STANDARD_PIXEL_COMPONENT_COUNT = 128; -const D3D10_STANDARD_PIXEL_ELEMENT_COUNT = 32; -const D3D10_STANDARD_VECTOR_SIZE = 4; -const D3D10_STANDARD_VERTEX_ELEMENT_COUNT = 16; -const D3D10_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT = 64; -const D3D10_SUBPIXEL_FRACTIONAL_BIT_COUNT = 8; -const D3D10_SUBTEXEL_FRACTIONAL_BIT_COUNT = 6; -const D3D10_TEXEL_ADDRESS_RANGE_BIT_COUNT = 18; -const D3D10_UNBOUND_MEMORY_ACCESS_RESULT = 0; -const D3D10_VIEWPORT_AND_SCISSORRECT_MAX_INDEX = 15; -const D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = 16; -const D3D10_VIEWPORT_BOUNDS_MAX = 16383; -const D3D10_VIEWPORT_BOUNDS_MIN = -16384; -const D3D10_VS_INPUT_REGISTER_COMPONENTS = 4; -const D3D10_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32; -const D3D10_VS_INPUT_REGISTER_COUNT = 16; -const D3D10_VS_INPUT_REGISTER_READS_PER_INST = 2; -const D3D10_VS_INPUT_REGISTER_READ_PORTS = 1; -const D3D10_VS_OUTPUT_REGISTER_COMPONENTS = 4; -const D3D10_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; -const D3D10_VS_OUTPUT_REGISTER_COUNT = 16; -const D3D10_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT = 10; -const D3D10_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 25; -const D3D10_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP = 25; -const D3D_MAJOR_VERSION = 10; -const D3D_MINOR_VERSION = 0; -const D3D_SPEC_DATE_DAY = 8; -const D3D_SPEC_DATE_MONTH = 8; -const D3D_SPEC_DATE_YEAR = 2006; -const D3D_SPEC_VERSION = 1.050005; - -const _FACD3D10 = 0x879; -const _FACD3D10DEBUG = _FACD3D10 + 1; - -HRESULT MAKE_D3D10_HRESULT(T)(T code) { - return MAKE_HRESULT(1, _FACD3D10, code); -} - -HRESULT MAKE_D3D10_STATUS(T)(T code) { - return MAKE_HRESULT(0, _FACD3D10, code); -} - -const D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS = MAKE_D3D10_HRESULT(1); -const D3D10_ERROR_FILE_NOT_FOUND = MAKE_D3D10_HRESULT(2); - -enum D3D10_INPUT_CLASSIFICATION { - D3D10_INPUT_PER_VERTEX_DATA = 0, - D3D10_INPUT_PER_INSTANCE_DATA = 1 -} - -const D3D10_APPEND_ALIGNED_ELEMENT = 0xffffffff; - -struct D3D10_INPUT_ELEMENT_DESC { - LPCSTR SemanticName; - UINT SemanticIndex; - DXGI_FORMAT Format; - UINT InputSlot; - UINT AlignedByteOffset; - D3D10_INPUT_CLASSIFICATION InputSlotClass; - UINT InstanceDataStepRate; -} - -enum D3D10_FILL_MODE { - D3D10_FILL_WIREFRAME = 2, - D3D10_FILL_SOLID = 3 -} - -enum D3D10_PRIMITIVE_TOPOLOGY { - D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = 0, - D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = 1, - D3D10_PRIMITIVE_TOPOLOGY_LINELIST = 2, - D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = 3, - D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4, - D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5, - D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10, - D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11, - D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12, - D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13 -} - -enum D3D10_PRIMITIVE { - D3D10_PRIMITIVE_UNDEFINED = 0, - D3D10_PRIMITIVE_POINT = 1, - D3D10_PRIMITIVE_LINE = 2, - D3D10_PRIMITIVE_TRIANGLE = 3, - D3D10_PRIMITIVE_LINE_ADJ = 6, - D3D10_PRIMITIVE_TRIANGLE_ADJ = 7 -} - -enum D3D10_CULL_MODE { - D3D10_CULL_NONE = 1, - D3D10_CULL_FRONT, - D3D10_CULL_BACK -} - -struct D3D10_SO_DECLARATION_ENTRY { - LPCSTR SemanticName; - UINT SemanticIndex; - BYTE StartComponent; - BYTE ComponentCount; - BYTE OutputSlot; -} - -struct D3D10_VIEWPORT { - INT TopLeftX; - INT TopLeftY; - UINT Width; - UINT Height; - FLOAT MinDepth; - FLOAT MaxDepth; -} - -enum D3D10_RESOURCE_DIMENSION { - D3D10_RESOURCE_DIMENSION_UNKNOWN = 0, - D3D10_RESOURCE_DIMENSION_BUFFER, - D3D10_RESOURCE_DIMENSION_TEXTURE1D, - D3D10_RESOURCE_DIMENSION_TEXTURE2D, - D3D10_RESOURCE_DIMENSION_TEXTURE3D -} - -enum D3D10_SRV_DIMENSION { - D3D10_SRV_DIMENSION_UNKNOWN = 0, - D3D10_SRV_DIMENSION_BUFFER, - D3D10_SRV_DIMENSION_TEXTURE1D, - D3D10_SRV_DIMENSION_TEXTURE1DARRAY, - D3D10_SRV_DIMENSION_TEXTURE2D, - D3D10_SRV_DIMENSION_TEXTURE2DARRAY, - D3D10_SRV_DIMENSION_TEXTURE2DMS, - D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY, - D3D10_SRV_DIMENSION_TEXTURE3D, - D3D10_SRV_DIMENSION_TEXTURECUBE -} - -enum D3D10_DSV_DIMENSION { - D3D10_DSV_DIMENSION_UNKNOWN = 0, - D3D10_DSV_DIMENSION_TEXTURE1D, - D3D10_DSV_DIMENSION_TEXTURE1DARRAY, - D3D10_DSV_DIMENSION_TEXTURE2D, - D3D10_DSV_DIMENSION_TEXTURE2DARRAY, - D3D10_DSV_DIMENSION_TEXTURE2DMS, - D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY6 -} - -enum D3D10_RTV_DIMENSION { - D3D10_RTV_DIMENSION_UNKNOWN = 0, - D3D10_RTV_DIMENSION_BUFFER, - D3D10_RTV_DIMENSION_TEXTURE1D, - D3D10_RTV_DIMENSION_TEXTURE1DARRAY, - D3D10_RTV_DIMENSION_TEXTURE2D, - D3D10_RTV_DIMENSION_TEXTURE2DARRAY, - D3D10_RTV_DIMENSION_TEXTURE2DMS, - D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY, - D3D10_RTV_DIMENSION_TEXTURE3D -} - -enum D3D10_USAGE { - D3D10_USAGE_DEFAULT = 0, - D3D10_USAGE_IMMUTABLE, - D3D10_USAGE_DYNAMIC, - D3D10_USAGE_STAGING -} - -enum D3D10_BIND_FLAG { - D3D10_BIND_VERTEX_BUFFER = 0x01, - D3D10_BIND_INDEX_BUFFER = 0x02, - D3D10_BIND_CONSTANT_BUFFER = 0x04, - D3D10_BIND_SHADER_RESOURCE = 0x08, - D3D10_BIND_STREAM_OUTPUT = 0x10, - D3D10_BIND_RENDER_TARGET = 0x20, - D3D10_BIND_DEPTH_STENCIL = 0x40 -} - -enum D3D10_CPU_ACCESS_FLAG { - D3D10_CPU_ACCESS_WRITE = 0x10000, - D3D10_CPU_ACCESS_READ = 0x20000 -} - -enum D3D10_RESOURCE_MISC_FLAG { - D3D10_RESOURCE_MISC_GENERATE_MIPS = 0x01, - D3D10_RESOURCE_MISC_SHARED = 0x02, - D3D10_RESOURCE_MISC_TEXTURECUBE = 0x04 -} - -enum D3D10_MAP { - D3D10_MAP_READ = 1, - D3D10_MAP_WRITE, - D3D10_MAP_READ_WRITE, - D3D10_MAP_WRITE_DISCARD, - D3D10_MAP_WRITE_NO_OVERWRITE -} - -enum D3D10_MAP_FLAG { - D3D10_MAP_FLAG_DO_NOT_WAIT = 0x100000 -} - -enum D3D10_RAISE_FLAG { - D3D10_RAISE_FLAG_DRIVER_INTERNAL_ERROR = 0x01 -} - -enum D3D10_CLEAR_FLAG { - D3D10_CLEAR_DEPTH = 0x01, - D3D10_CLEAR_STENCIL = 0x02 -} - -alias RECT D3D10_RECT; - -struct D3D10_BOX { - UINT left; - UINT top; - UINT front; - UINT right; - UINT bottom; - UINT back; -} - -extern (Windows) interface ID3D10DeviceChild : IUnknown { - //extern(Windows) : - void GetDevice(ID3D10Device* ppDevice); - HRESULT GetPrivateData(REFGUID guid, UINT *pDataSize, void *pData); - HRESULT SetPrivateData(REFGUID guid, UINT DataSize, void *pData); - HRESULT SetPrivateDataInterface(REFGUID guid, IUnknown pData); -} - -enum D3D10_COMPARISON_FUNC { - D3D10_COMPARISON_NEVER = 1, - D3D10_COMPARISON_LESS, - D3D10_COMPARISON_EQUAL, - D3D10_COMPARISON_LESS_EQUAL, - D3D10_COMPARISON_GREATER, - D3D10_COMPARISON_NOT_EQUAL, - D3D10_COMPARISON_GREATER_EQUAL, - D3D10_COMPARISON_ALWAYS -} - -enum D3D10_DEPTH_WRITE_MASK { - D3D10_DEPTH_WRITE_MASK_ZERO = 0, - D3D10_DEPTH_WRITE_MASK_ALL -} - -enum D3D10_STENCIL_OP { - D3D10_STENCIL_OP_KEEP = 1, - D3D10_STENCIL_OP_ZERO, - D3D10_STENCIL_OP_REPLACE, - D3D10_STENCIL_OP_INCR_SAT, - D3D10_STENCIL_OP_DECR_SAT, - D3D10_STENCIL_OP_INVERT, - D3D10_STENCIL_OP_INCR, - D3D10_STENCIL_OP_DECR -} - -struct D3D10_DEPTH_STENCILOP_DESC { - D3D10_STENCIL_OP StencilFailOp; - D3D10_STENCIL_OP StencilDepthFailOp; - D3D10_STENCIL_OP StencilPassOp; - D3D10_COMPARISON_FUNC StencilFunc; -} - -struct D3D10_DEPTH_STENCIL_DESC { - BOOL DepthEnable; - D3D10_DEPTH_WRITE_MASK DepthWriteMask; - D3D10_COMPARISON_FUNC DepthFunc; - BOOL StencilEnable; - UINT8 StencilReadMask; - UINT8 StencilWriteMask; - D3D10_DEPTH_STENCILOP_DESC FrontFace; - D3D10_DEPTH_STENCILOP_DESC BackFace; -} - -interface ID3D10DepthStencilState : ID3D10DeviceChild { - extern(Windows) : - void GetDesc(D3D10_DEPTH_STENCIL_DESC *pDesc); -} - -enum D3D10_BLEND { - D3D10_BLEND_ZERO = 1, - D3D10_BLEND_ONE = 2, - D3D10_BLEND_SRC_COLOR = 3, - D3D10_BLEND_INV_SRC_COLOR = 4, - D3D10_BLEND_SRC_ALPHA = 5, - D3D10_BLEND_INV_SRC_ALPHA = 6, - D3D10_BLEND_DEST_ALPHA = 7, - D3D10_BLEND_INV_DEST_ALPHA = 8, - D3D10_BLEND_DEST_COLOR = 9, - D3D10_BLEND_INV_DEST_COLOR = 10, - D3D10_BLEND_SRC_ALPHA_SAT = 11, - D3D10_BLEND_BLEND_FACTOR = 14, - D3D10_BLEND_INV_BLEND_FACTOR = 15, - D3D10_BLEND_SRC1_COLOR = 16, - D3D10_BLEND_INV_SRC1_COLOR = 17, - D3D10_BLEND_SRC1_ALPHA = 18, - D3D10_BLEND_INV_SRC1_ALPHA = 19 -} - -enum D3D10_BLEND_OP { - D3D10_BLEND_OP_ADD = 1, - D3D10_BLEND_OP_SUBTRACT, - D3D10_BLEND_OP_REV_SUBTRACT, - D3D10_BLEND_OP_MIN, - D3D10_BLEND_OP_MAX -} - -enum D3D10_COLOR_WRITE_ENABLE { - D3D10_COLOR_WRITE_ENABLE_RED = 1, - D3D10_COLOR_WRITE_ENABLE_GREEN = 2, - D3D10_COLOR_WRITE_ENABLE_BLUE = 4, - D3D10_COLOR_WRITE_ENABLE_ALPHA = 8, - D3D10_COLOR_WRITE_ENABLE_ALL = (((D3D10_COLOR_WRITE_ENABLE_RED | D3D10_COLOR_WRITE_ENABLE_GREEN) | D3D10_COLOR_WRITE_ENABLE_BLUE) | D3D10_COLOR_WRITE_ENABLE_ALPHA) -} - -struct D3D10_BLEND_DESC { - BOOL AlphaToCoverageEnable; - BOOL[8] BlendEnable; - D3D10_BLEND SrcBlend; - D3D10_BLEND DestBlend; - D3D10_BLEND_OP BlendOp; - D3D10_BLEND SrcBlendAlpha; - D3D10_BLEND DestBlendAlpha; - D3D10_BLEND_OP BlendOpAlpha; - UINT8[8] RenderTargetWriteMask; -} - -interface ID3D10BlendState : ID3D10DeviceChild { - extern(Windows) : - void GetDesc(D3D10_BLEND_DESC *pDesc); -} - -struct D3D10_RASTERIZER_DESC { - D3D10_FILL_MODE FillMode; - D3D10_CULL_MODE CullMode; - BOOL FrontCounterClockwise; - INT DepthBias; - FLOAT DepthBiasClamp; - FLOAT SlopeScaledDepthBias; - BOOL DepthClipEnable; - BOOL ScissorEnable; - BOOL MultisampleEnable; - BOOL AntialiasedLineEnable; -} - -interface ID3D10RasterizerState : ID3D10DeviceChild { - extern(Windows) : - void GetDesc(D3D10_RASTERIZER_DESC *pDesc); -} - -UINT D3D10CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT MipLevels) { - return MipSlice + ArraySlice * MipLevels; -} - -struct D3D10_SUBRESOURCE_DATA { - void *pSysMem; - UINT SysMemPitch; - UINT SysMemSlicePitch; -} - -interface ID3D10Resource : ID3D10DeviceChild { - extern(Windows) : - void GetType(D3D10_RESOURCE_DIMENSION *rType); - void SetEvictionPriority(UINT EvictionPriority); - UINT GetEvictionPriority(); -} - -struct D3D10_BUFFER_DESC { - UINT ByteWidth; - D3D10_USAGE Usage; - UINT BindFlags; - UINT CPUAccessFlags; - UINT MiscFlags; -} - -interface ID3D10Buffer : ID3D10Resource { - extern(Windows) : - HRESULT Map(D3D10_MAP MapType, UINT MapFlags, void **ppData); - void Unmap(); - void GetDesc(D3D10_BUFFER_DESC *pDesc); -} - -struct D3D10_TEXTURE1D_DESC { - UINT Width; - UINT MipLevels; - UINT ArraySize; - DXGI_FORMAT Format; - D3D10_USAGE Usage; - UINT BindFlags; - UINT CPUAccessFlags; - UINT MiscFlags; -} - -interface ID3D10Texture1D : ID3D10Resource { - extern(Windows) : - HRESULT Map(UINT Subresource, D3D10_MAP MapType, UINT MapFlags, void **ppData); - void Unmap(UINT Subresource); - void GetDesc(D3D10_TEXTURE1D_DESC *pDesc); -} - -struct D3D10_TEXTURE2D_DESC { - UINT Width; - UINT Height; - UINT MipLevels; - UINT ArraySize; - DXGI_FORMAT Format; - DXGI_SAMPLE_DESC SampleDesc; - D3D10_USAGE Usage; - UINT BindFlags; - UINT CPUAccessFlags; - UINT MiscFlags; -} - -struct D3D10_MAPPED_TEXTURE2D { - void *pData; - UINT RowPitch; -} - -interface ID3D10Texture2D : ID3D10Resource { - extern(Windows) : - HRESULT Map(UINT Subresource, D3D10_MAP MapType, UINT MapFlags, D3D10_MAPPED_TEXTURE2D *pMappedTex2D); - void Unmap(UINT Subresource); - void GetDesc(D3D10_TEXTURE2D_DESC *pDesc); -} - -struct D3D10_TEXTURE3D_DESC { - UINT Width; - UINT Height; - UINT Depth; - UINT MipLevels; - DXGI_FORMAT Format; - D3D10_USAGE Usage; - UINT BindFlags; - UINT CPUAccessFlags; - UINT MiscFlags; -} - -struct D3D10_MAPPED_TEXTURE3D { - void *pData; - UINT RowPitch; - UINT DepthPitch; -} - -interface ID3D10Texture3D : ID3D10Resource { - extern(Windows) : - HRESULT Map(UINT Subresource, D3D10_MAP MapType, UINT MapFlags, D3D10_MAPPED_TEXTURE3D *pMappedTex3D); - void Unmap(UINT Subresource); - void GetDesc(D3D10_TEXTURE3D_DESC *pDesc); -} - -enum D3D10_TEXTURECUBE_FACE { - D3D10_TEXTURECUBE_FACE_POSITIVE_X = 0, - D3D10_TEXTURECUBE_FACE_NEGATIVE_X, - D3D10_TEXTURECUBE_FACE_POSITIVE_Y, - D3D10_TEXTURECUBE_FACE_NEGATIVE_Y, - D3D10_TEXTURECUBE_FACE_POSITIVE_Z, - D3D10_TEXTURECUBE_FACE_NEGATIVE_Z -} - -interface ID3D10View : ID3D10DeviceChild { - extern(Windows) : - void GetResource(ID3D10Resource *ppResource); -} - -struct D3D10_BUFFER_SRV { - UINT ElementOffset; - UINT ElementWidth; -} - -struct D3D10_TEX1D_SRV { - UINT MostDetailedMip; - UINT MipLevels; -} - -struct D3D10_TEX1D_ARRAY_SRV { - UINT MostDetailedMip; - UINT MipLevels; - UINT FirstArraySlice; - UINT ArraySize; -} - -struct D3D10_TEX2D_SRV { - UINT MostDetailedMip; - UINT MipLevels; -} - -struct D3D10_TEX2D_ARRAY_SRV { - UINT MostDetailedMip; - UINT MipLevels; - UINT FirstArraySlice; - UINT ArraySize; -} - -struct D3D10_TEX3D_SRV { - UINT MostDetailedMip; - UINT MipLevels; -} - -struct D3D10_TEXCUBE_SRV { - UINT MostDetailedMip; - UINT MipLevels; -} - -struct D3D10_TEX2DMS_SRV { - UINT UnusedField_NothingToDefine; -} - -struct D3D10_TEX2DMS_ARRAY_SRV { - UINT FirstArraySlice; - UINT ArraySize; -} - -struct D3D10_SHADER_RESOURCE_VIEW_DESC { - DXGI_FORMAT Format; - D3D10_SRV_DIMENSION ViewDimension; - union { - D3D10_BUFFER_SRV Buffer; - D3D10_TEX1D_SRV Texture1D; - D3D10_TEX1D_ARRAY_SRV Texture1DArray; - D3D10_TEX2D_SRV Texture2D; - D3D10_TEX2D_ARRAY_SRV Texture2DArray; - D3D10_TEX2DMS_SRV Texture2DMS; - D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray; - D3D10_TEX3D_SRV Texture3D; - D3D10_TEXCUBE_SRV TextureCube; - } -} - -interface ID3D10ShaderResourceView : ID3D10View { - extern(Windows) : - void GetDesc(D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc); -} - -struct D3D10_BUFFER_RTV { - UINT ElementOffset; - UINT ElementWidth; -} - -struct D3D10_TEX1D_RTV { - UINT MipSlice; -} - -struct D3D10_TEX1D_ARRAY_RTV { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; -} - -struct D3D10_TEX2D_RTV { - UINT MipSlice; -} - -struct D3D10_TEX2DMS_RTV { - UINT UnusedField_NothingToDefine; -} - -struct D3D10_TEX2D_ARRAY_RTV { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; -} - -struct D3D10_TEX2DMS_ARRAY_RTV { - UINT FirstArraySlice; - UINT ArraySize; -} - -struct D3D10_TEX3D_RTV { - UINT MipSlice; - UINT FirstWSlice; - UINT WSize; -} - -struct D3D10_RENDER_TARGET_VIEW_DESC { - DXGI_FORMAT Format; - D3D10_RTV_DIMENSION ViewDimension; - union { - D3D10_BUFFER_RTV Buffer; - D3D10_TEX1D_RTV Texture1D; - D3D10_TEX1D_ARRAY_RTV Texture1DArray; - D3D10_TEX2D_RTV Texture2D; - D3D10_TEX2D_ARRAY_RTV Texture2DArray; - D3D10_TEX2DMS_RTV Texture2DMS; - D3D10_TEX2DMS_ARRAY_RTV Texture2DMSArray; - D3D10_TEX3D_RTV Texture3D; - } -} - -interface ID3D10RenderTargetView : ID3D10View { - extern(Windows) : - void GetDesc(D3D10_RENDER_TARGET_VIEW_DESC *pDesc); -} - -struct D3D10_TEX1D_DSV { - UINT MipSlice; -} - -struct D3D10_TEX1D_ARRAY_DSV { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; -} - -struct D3D10_TEX2D_DSV { - UINT MipSlice; -} - -struct D3D10_TEX2D_ARRAY_DSV { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; -} - -struct D3D10_TEX2DMS_DSV { - UINT UnusedField_NothingToDefine; -} - -struct D3D10_TEX2DMS_ARRAY_DSV { - UINT FirstArraySlice; - UINT ArraySize; -} - -struct D3D10_DEPTH_STENCIL_VIEW_DESC { - DXGI_FORMAT Format; - D3D10_DSV_DIMENSION ViewDimension; - union { - D3D10_TEX1D_DSV Texture1D; - D3D10_TEX1D_ARRAY_DSV Texture1DArray; - D3D10_TEX2D_DSV Texture2D; - D3D10_TEX2D_ARRAY_DSV Texture2DArray; - D3D10_TEX2DMS_DSV Texture2DMS; - D3D10_TEX2DMS_ARRAY_DSV Texture2DMSArray; - } -} - -interface ID3D10DepthStencilView : ID3D10View { - extern(Windows) : - void GetDesc(D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc); -} - -interface ID3D10VertexShader : ID3D10DeviceChild { } - -interface ID3D10GeometryShader : ID3D10DeviceChild { } - -interface ID3D10PixelShader : ID3D10DeviceChild { } - -interface ID3D10InputLayout : ID3D10DeviceChild { } - -enum D3D10_FILTER { - D3D10_FILTER_MIN_MAG_MIP_POINT = 0x00, - D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x01, - D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x04, - D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x05, - D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10, - D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, - D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14, - D3D10_FILTER_MIN_MAG_MIP_LINEAR = 0x15, - D3D10_FILTER_ANISOTROPIC = 0x55, - D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80, - D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, - D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, - D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, - D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, - D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, - D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, - D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, - D3D10_FILTER_COMPARISON_ANISOTROPIC = 0xd5, - D3D10_FILTER_TEXT_1BIT = 0x80000000 -} - - -enum D3D10_FILTER_TYPE { - D3D10_FILTER_TYPE_POINT = 0, - D3D10_FILTER_TYPE_LINEAR -} - -const D3D10_FILTER_TYPE_MASK = 0x03; - -const D3D10_MIN_FILTER_SHIFT = 4; - -const D3D10_MAG_FILTER_SHIFT = 2; - -const D3D10_MIP_FILTER_SHIFT = 0; - -const D3D10_COMPARISON_FILTERING_BIT = 0x80; - -const D3D10_ANISOTROPIC_FILTERING_BIT = 0x40; - -const D3D10_TEXT_1BIT_BIT = 0x80000000; - -D3D10_FILTER D3D10_ENCODE_BASIC_FILTER(int min, int mag, int mip, bool bComparison) { - return cast(D3D10_FILTER)(((bComparison) ? D3D10_COMPARISON_FILTERING_BIT : 0) | - ((min & D3D10_FILTER_TYPE_MASK) << D3D10_MIN_FILTER_SHIFT) | - ((mag & D3D10_FILTER_TYPE_MASK) << D3D10_MAG_FILTER_SHIFT) | - ((mip & D3D10_FILTER_TYPE_MASK) << D3D10_MIP_FILTER_SHIFT)); -} - -D3D10_FILTER D3D10_ENCODE_ANISOTROPIC_FILTER(bool bComparison) { - return cast(D3D10_FILTER)(D3D10_ANISOTROPIC_FILTERING_BIT | - D3D10_ENCODE_BASIC_FILTER(D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR, - D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR, D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR, - bComparison)); -} - -D3D10_FILTER_TYPE D3D10_DECODE_MIN_FILTER(D3D10_FILTER d3d10Filter) { - return cast(D3D10_FILTER_TYPE)((d3d10Filter >> D3D10_MIN_FILTER_SHIFT) & D3D10_FILTER_TYPE_MASK); -} - -D3D10_FILTER_TYPE D3D10_DECODE_MAG_FILTER(D3D10_FILTER d3d10Filter) { - return cast(D3D10_FILTER_TYPE)((d3d10Filter >> D3D10_MAG_FILTER_SHIFT) & D3D10_FILTER_TYPE_MASK); -} - -D3D10_FILTER_TYPE D3D10_DECODE_MIP_FILTER(D3D10_FILTER d3d10Filter) { - return cast(D3D10_FILTER_TYPE)((d3d10Filter >> D3D10_MIP_FILTER_SHIFT) & D3D10_FILTER_TYPE_MASK); -} - -bool D3D10_DECODE_IS_COMPARISON_FILTER(D3D10_FILTER d3d10Filter) { - return (d3d10Filter & D3D10_COMPARISON_FILTERING_BIT) == D3D10_COMPARISON_FILTERING_BIT; -} - -bool D3D10_DECODE_IS_ANISOTROPIC_FILTER(D3D10_FILTER d3d10Filter) { - return ((d3d10Filter & D3D10_ANISOTROPIC_FILTERING_BIT) && - (D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MIN_FILTER(d3d10Filter)) && - (D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MAG_FILTER(d3d10Filter)) && - (D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MIP_FILTER(d3d10Filter))); -} - -bool D3D10_DECODE_IS_TEXT_1BIT_FILTER(D3D10_FILTER d3d10Filter) { - return d3d10Filter == D3D10_TEXT_1BIT_BIT; -} - -enum D3D10_TEXTURE_ADDRESS_MODE { - D3D10_TEXTURE_ADDRESS_WRAP = 1, - D3D10_TEXTURE_ADDRESS_MIRROR, - D3D10_TEXTURE_ADDRESS_CLAMP, - D3D10_TEXTURE_ADDRESS_BORDER, - D3D10_TEXTURE_ADDRESS_MIRROR_ONCE -} - -struct D3D10_SAMPLER_DESC { - D3D10_FILTER Filter; - D3D10_TEXTURE_ADDRESS_MODE AddressU; - D3D10_TEXTURE_ADDRESS_MODE AddressV; - D3D10_TEXTURE_ADDRESS_MODE AddressW; - FLOAT MipLODBias; - UINT MaxAnisotropy; - D3D10_COMPARISON_FUNC ComparisonFunc; - FLOAT[4] BorderColor; - FLOAT MinLOD; - FLOAT MaxLOD; -} - -interface ID3D10SamplerState : ID3D10DeviceChild { - extern(Windows) : - void GetDesc(D3D10_SAMPLER_DESC *pDesc); -} - -enum D3D10_FORMAT_SUPPORT { - D3D10_FORMAT_SUPPORT_BUFFER = 0x000001, - D3D10_FORMAT_SUPPORT_IA_VERTEX_BUFFER = 0x000002, - D3D10_FORMAT_SUPPORT_IA_INDEX_BUFFER = 0x000004, - D3D10_FORMAT_SUPPORT_SO_BUFFER = 0x000008, - D3D10_FORMAT_SUPPORT_TEXTURE1D = 0x000010, - D3D10_FORMAT_SUPPORT_TEXTURE2D = 0x000020, - D3D10_FORMAT_SUPPORT_TEXTURE3D = 0x000040, - D3D10_FORMAT_SUPPORT_TEXTURECUBE = 0x000080, - D3D10_FORMAT_SUPPORT_SHADER_LOAD = 0x000100, - D3D10_FORMAT_SUPPORT_SHADER_SAMPLE = 0x000200, - D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x000400, - D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = 0x000800, - D3D10_FORMAT_SUPPORT_MIP = 0x001000, - D3D10_FORMAT_SUPPORT_MIP_AUTOGEN = 0x002000, - D3D10_FORMAT_SUPPORT_RENDER_TARGET = 0x004000, - D3D10_FORMAT_SUPPORT_BLENDABLE = 0x008000, - D3D10_FORMAT_SUPPORT_DEPTH_STENCIL = 0x010000, - D3D10_FORMAT_SUPPORT_CPU_LOCKABLE = 0x020000, - D3D10_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = 0x040000, - D3D10_FORMAT_SUPPORT_DISPLAY = 0x080000, - D3D10_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = 0x100000, - D3D10_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x200000, - D3D10_FORMAT_SUPPORT_MULTISAMPLE_LOAD = 0x400000, - D3D10_FORMAT_SUPPORT_SHADER_GATHER = 0x800000 -} - -interface ID3D10Asynchronous : ID3D10DeviceChild { - extern(Windows) : - void Begin(); - void End(); - HRESULT GetData(void *pData, UINT DataSize, UINT GetDataFlags); - UINT GetDataSize(); -} - -enum D3D10_ASYNC_GETDATA_FLAG { - D3D10_ASYNC_GETDATA_DONOTFLUSH = 0x1 -} - -enum D3D10_QUERY { - D3D10_QUERY_EVENT = 0, - D3D10_QUERY_OCCLUSION = (D3D10_QUERY_EVENT + 1), - D3D10_QUERY_TIMESTAMP = (D3D10_QUERY_OCCLUSION + 1), - D3D10_QUERY_TIMESTAMP_DISJOINT = (D3D10_QUERY_TIMESTAMP + 1), - D3D10_QUERY_PIPELINE_STATISTICS = (D3D10_QUERY_TIMESTAMP_DISJOINT + 1), - D3D10_QUERY_OCCLUSION_PREDICATE = (D3D10_QUERY_PIPELINE_STATISTICS + 1), - D3D10_QUERY_SO_STATISTICS = (D3D10_QUERY_OCCLUSION_PREDICATE + 1), - D3D10_QUERY_SO_OVERFLOW_PREDICATE = (D3D10_QUERY_SO_STATISTICS + 1) -} - -enum D3D10_QUERY_MISC_FLAG { - D3D10_QUERY_MISC_PREDICATEHINT = 0x01 -} - -struct D3D10_QUERY_DESC { - D3D10_QUERY Query; - UINT MiscFlags; -} - -interface ID3D10Query : ID3D10Asynchronous { - extern(Windows) : - void GetDesc(D3D10_QUERY_DESC *pDesc); -} - -interface ID3D10Predicate : ID3D10Query { } - -struct D3D10_QUERY_DATA_TIMESTAMP_DISJOINT { - UINT64 Frequency; - BOOL Disjoint; -} - -struct D3D10_QUERY_DATA_PIPELINE_STATISTICS { - UINT64 IAVertices; - UINT64 IAPrimitives; - UINT64 VSInvocations; - UINT64 GSInvocations; - UINT64 GSPrimitives; - UINT64 CInvocations; - UINT64 CPrimitives; - UINT64 PSInvocations; -} - -struct D3D10_QUERY_DATA_SO_STATISTICS { - UINT64 NumPrimitivesWritten; - UINT64 PrimitivesStorageNeeded; -} - -enum D3D10_COUNTER { - D3D10_COUNTER_GPU_IDLE = 0, - D3D10_COUNTER_VERTEX_PROCESSING = (D3D10_COUNTER_GPU_IDLE + 1), - D3D10_COUNTER_GEOMETRY_PROCESSING = (D3D10_COUNTER_VERTEX_PROCESSING + 1), - D3D10_COUNTER_PIXEL_PROCESSING = (D3D10_COUNTER_GEOMETRY_PROCESSING + 1), - D3D10_COUNTER_OTHER_GPU_PROCESSING = (D3D10_COUNTER_PIXEL_PROCESSING + 1), - D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION = (D3D10_COUNTER_OTHER_GPU_PROCESSING + 1), - D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION = (D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION + 1), - D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION = (D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION + 1), - D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION = (D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION + 1), - D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION = (D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION + 1), - D3D10_COUNTER_VS_MEMORY_LIMITED = (D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION + 1), - D3D10_COUNTER_VS_COMPUTATION_LIMITED = (D3D10_COUNTER_VS_MEMORY_LIMITED + 1), - D3D10_COUNTER_GS_MEMORY_LIMITED = (D3D10_COUNTER_VS_COMPUTATION_LIMITED + 1), - D3D10_COUNTER_GS_COMPUTATION_LIMITED = (D3D10_COUNTER_GS_MEMORY_LIMITED + 1), - D3D10_COUNTER_PS_MEMORY_LIMITED = (D3D10_COUNTER_GS_COMPUTATION_LIMITED + 1), - D3D10_COUNTER_PS_COMPUTATION_LIMITED = (D3D10_COUNTER_PS_MEMORY_LIMITED + 1), - D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE = (D3D10_COUNTER_PS_COMPUTATION_LIMITED + 1), - D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE = (D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE + 1), - D3D10_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000 -} - -enum D3D10_COUNTER_TYPE { - D3D10_COUNTER_TYPE_FLOAT32 = 0, - D3D10_COUNTER_TYPE_UINT16 = (D3D10_COUNTER_TYPE_FLOAT32 + 1), - D3D10_COUNTER_TYPE_UINT32 = (D3D10_COUNTER_TYPE_UINT16 + 1), - D3D10_COUNTER_TYPE_UINT64 = (D3D10_COUNTER_TYPE_UINT32 + 1) -} - -struct D3D10_COUNTER_DESC { - D3D10_COUNTER Counter; - UINT MiscFlags; -} - -struct D3D10_COUNTER_INFO { - D3D10_COUNTER LastDeviceDependentCounter; - UINT NumSimultaneousCounters; - UINT8 NumDetectableParallelUnits; -} - -interface ID3D10Counter : ID3D10Asynchronous { - extern(Windows) : - void GetDesc(D3D10_COUNTER_DESC *pDesc); -} - -interface ID3D10Device : IUnknown { - extern(Windows) : - void VSSetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers); - void PSSetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews); - void PSSetShader(ID3D10PixelShader pPixelShader); - void PSSetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers); - void VSSetShader(ID3D10VertexShader pVertexShader); - void DrawIndexed(UINT IndexCount, UINT StartIndexLocation, INT BaseVertexLocation); - void Draw(UINT VertexCount, UINT StartVertexLocation); - void PSSetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers); - void IASetInputLayout(ID3D10InputLayout pInputLayout); - void IASetVertexBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppVertexBuffers, UINT* pStrides, UINT* pOffsets); - void IASetIndexBuffer(ID3D10Buffer pIndexBuffer, DXGI_FORMAT Format, UINT Offset); - void DrawIndexedInstanced(UINT IndexCountPerInstance, UINT InstanceCount, UINT StartIndexLocation, INT BaseVertexLocation, UINT StartInstanceLocation); - void DrawInstanced(UINT VertexCountPerInstance, UINT InstanceCount, UINT StartVertexLocation, UINT StartInstanceLocation); - void GSSetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers); - void GSSetShader(ID3D10GeometryShader pShader); - void IASetPrimitiveTopology(D3D10_PRIMITIVE_TOPOLOGY Topology); - void VSSetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews); - void VSSetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers); - void SetPredication(ID3D10Predicate pPredicate, BOOL PredicateValue); - void GSSetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews); - void GSSetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers); - void OMSetRenderTargets(UINT NumViews, ID3D10RenderTargetView* ppRenderTargetViews, ID3D10DepthStencilView pDepthStencilView); - void OMSetBlendState(ID3D10BlendState pBlendState, FLOAT[4] BlendFactor, UINT SampleMask); - void OMSetDepthStencilState(ID3D10DepthStencilState pDepthStencilState, UINT StencilRef); - void SOSetTargets(UINT NumBuffers, ID3D10Buffer* ppSOTargets, UINT* pOffsets); - void DrawAuto(); - void RSSetState(ID3D10RasterizerState pRasterizerState); - void RSSetViewports(UINT NumViewports, D3D10_VIEWPORT* pViewports); - void RSSetScissorRects(UINT NumRects, D3D10_RECT* pRects); - void CopySubresourceRegion(ID3D10Resource pDstResource, UINT DstSubresource, UINT DstX, UINT DstY, UINT DstZ, ID3D10Resource pSrcResource, UINT SrcSubresource, D3D10_BOX* pSrcBox); - void CopyResource(ID3D10Resource pDstResource, ID3D10Resource pSrcResource); - void UpdateSubresource(ID3D10Resource pDstResource, UINT DstSubresource, D3D10_BOX* pDstBox, void* pSrcData, UINT SrcRowPitch, UINT SrcDepthPitch); - void ClearRenderTargetView(ID3D10RenderTargetView pRenderTargetView, FLOAT[4]* ColorRGBA); - void ClearDepthStencilView(ID3D10DepthStencilView pDepthStencilView, UINT ClearFlags, FLOAT Depth, UINT8 Stencil); - void GenerateMips(ID3D10ShaderResourceView pShaderResourceView); - void ResolveSubresource(ID3D10Resource pDstResource, UINT DstSubresource, ID3D10Resource pSrcResource, UINT SrcSubresource, DXGI_FORMAT Format); - void VSGetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers); - void PSGetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews); - void PSGetShader(ID3D10PixelShader* ppPixelShader); - void PSGetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers); - void VSGetShader(ID3D10VertexShader* ppVertexShader); - void PSGetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers); - void IAGetInputLayout(ID3D10InputLayout* ppInputLayout); - void IAGetVertexBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppVertexBuffers, UINT* pStrides, UINT* pOffsets); - void IAGetIndexBuffer(ID3D10Buffer* pIndexBuffer, DXGI_FORMAT* Format, UINT* Offset); - void GSGetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers); - void GSGetShader(ID3D10GeometryShader* ppGeometryShader); - void IAGetPrimitiveTopology(D3D10_PRIMITIVE_TOPOLOGY* pTopology); - void VSGetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews); - void VSGetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers); - void GetPredication(ID3D10Predicate* ppPredicate, BOOL* pPredicateValue); - void GSGetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews); - void GSGetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers); - void OMGetRenderTargets(UINT NumViews, ID3D10RenderTargetView* ppRenderTargetViews, ID3D10DepthStencilView* ppDepthStencilView); - void OMGetBlendState(ID3D10BlendState* ppBlendState, FLOAT[ 4 ] BlendFactor, UINT* pSampleMask); - void OMGetDepthStencilState(ID3D10DepthStencilState* ppDepthStencilState, UINT* pStencilRef); - void SOGetTargets(UINT NumBuffers, ID3D10Buffer* ppSOTargets, UINT* pOffsets); - void RSGetState(ID3D10RasterizerState* ppRasterizerState); - void RSGetViewports(UINT* NumViewports, D3D10_VIEWPORT* pViewports); - void RSGetScissorRects(UINT* NumRects, D3D10_RECT* pRects); - HRESULT GetDeviceRemovedReason(); - HRESULT SetExceptionMode(UINT RaiseFlags); - UINT GetExceptionMode(); - HRESULT GetPrivateData(REFGUID guid, UINT* pDataSize, void* pData); - HRESULT SetPrivateData(REFGUID guid, UINT DataSize, void* pData); - HRESULT SetPrivateDataInterface(REFGUID guid, IUnknown pData); - void ClearState(); - void Flush(); - HRESULT CreateBuffer(D3D10_BUFFER_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Buffer* ppBuffer); - HRESULT CreateTexture1D(D3D10_TEXTURE1D_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Texture1D* ppTexture1D); - HRESULT CreateTexture2D(D3D10_TEXTURE2D_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Texture2D* ppTexture2D); - HRESULT CreateTexture3D(D3D10_TEXTURE3D_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Texture3D* ppTexture3D); - HRESULT CreateShaderResourceView(ID3D10Resource pResource, D3D10_SHADER_RESOURCE_VIEW_DESC* pDesc, ID3D10ShaderResourceView* ppSRView); - HRESULT CreateRenderTargetView(ID3D10Resource pResource, D3D10_RENDER_TARGET_VIEW_DESC* pDesc, ID3D10RenderTargetView* ppRTView); - HRESULT CreateDepthStencilView(ID3D10Resource pResource, D3D10_DEPTH_STENCIL_VIEW_DESC* pDesc, ID3D10DepthStencilView* ppDepthStencilView); - HRESULT CreateInputLayout(D3D10_INPUT_ELEMENT_DESC* pInputElementDescs, UINT NumElements, void* pShaderBytecodeWithInputSignature, SIZE_T BytecodeLength, ID3D10InputLayout* ppInputLayout); - HRESULT CreateVertexShader(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10VertexShader* ppVertexShader); - HRESULT CreateGeometryShader(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10GeometryShader* ppGeometryShader); - HRESULT CreateGeometryShaderWithStreamOutput(void* pShaderBytecode, SIZE_T BytecodeLength, D3D10_SO_DECLARATION_ENTRY* pSODeclaration, UINT NumEntries, UINT OutputStreamStride, ID3D10GeometryShader* ppGeometryShader); - HRESULT CreatePixelShader(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10PixelShader* ppPixelShader); - HRESULT CreateBlendState(D3D10_BLEND_DESC* pBlendStateDesc, ID3D10BlendState* ppBlendState); - HRESULT CreateDepthStencilState(D3D10_DEPTH_STENCIL_DESC* pDepthStencilDesc, ID3D10DepthStencilState* ppDepthStencilState); - HRESULT CreateRasterizerState(D3D10_RASTERIZER_DESC* pRasterizerDesc, ID3D10RasterizerState* ppRasterizerState); - HRESULT CreateSamplerState(D3D10_SAMPLER_DESC* pSamplerDesc, ID3D10SamplerState* ppSamplerState); - HRESULT CreateQuery(D3D10_QUERY_DESC* pQueryDesc, ID3D10Query* ppQuery); - HRESULT CreatePredicate(D3D10_QUERY_DESC* pPredicateDesc, ID3D10Predicate* ppPredicate); - HRESULT CreateCounter(D3D10_COUNTER_DESC* pCounterDesc, ID3D10Counter* ppCounter); - HRESULT CheckFormatSupport(DXGI_FORMAT Format, UINT* pFormatSupport); - HRESULT CheckMultisampleQualityLevels(DXGI_FORMAT Format, UINT SampleCount, UINT* pNumQualityLevels); - void CheckCounterInfo(D3D10_COUNTER_INFO* pCounterInfo); - HRESULT CheckCounter(D3D10_COUNTER_DESC* pDesc, D3D10_COUNTER_TYPE* pType, UINT* pActiveCounters, LPSTR szName, UINT* pNameLength, LPSTR szUnits, UINT* pUnitsLength, LPSTR szDescription, UINT* pDescriptionLength); - UINT GetCreationFlags(); - HRESULT OpenSharedResource(HANDLE hResource, REFIID ReturnedInterface, void** ppResource); - void SetTextFilterSize(UINT Width, UINT Height); - void GetTextFilterSize(UINT* pWidth, UINT* pHeight); -} - -interface ID3D10Multithread : IUnknown { - extern(Windows) : - void Enter(); - void Leave(); - BOOL SetMultithreadProtected(BOOL bMTProtect); - BOOL GetMultithreadProtected(); -} - -enum D3D10_CREATE_DEVICE_FLAG { - D3D10_CREATE_DEVICE_SINGLETHREADED = 0x01, - D3D10_CREATE_DEVICE_DEBUG = 0x02, - D3D10_CREATE_DEVICE_SWITCH_TO_REF = 0x04, - D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x08 -} - -const D3D10_SDK_VERSION = 29; - -extern(C) const GUID IID_ID3D10DeviceChild = {0x9B7E4C00, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; -extern(C) const GUID IID_ID3D10DepthStencilState = {0x2B4B1CC8, 0xA4AD, 0x41f8, [0x83, 0x22, 0xCA, 0x86, 0xFC, 0x3E, 0xC6, 0x75]}; -extern(C) const GUID IID_ID3D10BlendState = {0xEDAD8D19, 0x8A35, 0x4d6d, [0x85, 0x66, 0x2E, 0xA2, 0x76, 0xCD, 0xE1, 0x61]}; -extern(C) const GUID IID_ID3D10RasterizerState = {0xA2A07292, 0x89AF, 0x4345, [0xBE, 0x2E, 0xC5, 0x3D, 0x9F, 0xBB, 0x6E, 0x9F]}; -extern(C) const GUID IID_ID3D10Resource = {0x9B7E4C01, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; -extern(C) const GUID IID_ID3D10Buffer = {0x9B7E4C02, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; -extern(C) const GUID IID_ID3D10Texture1D = {0x9B7E4C03, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; -extern(C) const GUID IID_ID3D10Texture2D = {0x9B7E4C04, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; -extern(C) const GUID IID_ID3D10Texture3D = {0x9B7E4C05, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; -extern(C) const GUID IID_ID3D10View = {0xC902B03F, 0x60A7, 0x49BA, [0x99, 0x36, 0x2A, 0x3A, 0xB3, 0x7A, 0x7E, 0x33]}; -extern(C) const GUID IID_ID3D10ShaderResourceView = {0x9B7E4C07, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; -extern(C) const GUID IID_ID3D10RenderTargetView = {0x9B7E4C08, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; -extern(C) const GUID IID_ID3D10DepthStencilView = {0x9B7E4C09, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; -extern(C) const GUID IID_ID3D10VertexShader = {0x9B7E4C0A, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; -extern(C) const GUID IID_ID3D10GeometryShader = {0x6316BE88, 0x54CD, 0x4040, [0xAB, 0x44, 0x20, 0x46, 0x1B, 0xC8, 0x1F, 0x68]}; -extern(C) const GUID IID_ID3D10PixelShader = {0x4968B601, 0x9D00, 0x4cde, [0x83, 0x46, 0x8E, 0x7F, 0x67, 0x58, 0x19, 0xB6]}; -extern(C) const GUID IID_ID3D10InputLayout = {0x9B7E4C0B, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; -extern(C) const GUID IID_ID3D10SamplerState = {0x9B7E4C0C, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; -extern(C) const GUID IID_ID3D10Asynchronous = {0x9B7E4C0D, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; -extern(C) const GUID IID_ID3D10Query = {0x9B7E4C0E, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; -extern(C) const GUID IID_ID3D10Predicate = {0x9B7E4C10, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; -extern(C) const GUID IID_ID3D10Counter = {0x9B7E4C11, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; -extern(C) const GUID IID_ID3D10Device = {0x9B7E4C0F, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; -extern(C) const GUID IID_ID3D10Multithread = {0x9B7E4E00, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; - -public import win32.directx.d3d10shader; -public import win32.directx.d3d10effect; DELETED src/win32/directx/d3d10effect.d Index: src/win32/directx/d3d10effect.d ================================================================== --- src/win32/directx/d3d10effect.d +++ src/win32/directx/d3d10effect.d @@ -1,795 +0,0 @@ -/***********************************************************************\ -* d3d10effect.d * -* * -* Windows API header module * -* * -* Placed into public domain * -\***********************************************************************/ -module win32.directx.d3d10effect; - -private import win32.windows; -private import win32.directx.d3d10; - - -enum D3D10_DEVICE_STATE_TYPES { - D3D10_DST_SO_BUFFERS = 1, - D3D10_DST_OM_RENDER_TARGETS, - D3D10_DST_OM_DEPTH_STENCIL_STATE, - D3D10_DST_OM_BLEND_STATE, - D3D10_DST_VS, - D3D10_DST_VS_SAMPLERS, - D3D10_DST_VS_SHADER_RESOURCES, - D3D10_DST_VS_CONSTANT_BUFFERS, - D3D10_DST_GS, - D3D10_DST_GS_SAMPLERS, - D3D10_DST_GS_SHADER_RESOURCES, - D3D10_DST_GS_CONSTANT_BUFFERS, - D3D10_DST_PS, - D3D10_DST_PS_SAMPLERS, - D3D10_DST_PS_SHADER_RESOURCES, - D3D10_DST_PS_CONSTANT_BUFFERS, - D3D10_DST_IA_VERTEX_BUFFERS, - D3D10_DST_IA_INDEX_BUFFER, - D3D10_DST_IA_INPUT_LAYOUT, - D3D10_DST_IA_PRIMITIVE_TOPOLOGY, - D3D10_DST_RS_VIEWPORTS, - D3D10_DST_RS_SCISSOR_RECTS, - D3D10_DST_RS_RASTERIZER_STATE, - D3D10_DST_PREDICATION -} - -struct D3D10_STATE_BLOCK_MASK { - BYTE VS; - BYTE[2] VSSamplers; - BYTE[16] VSShaderResources; - BYTE[2] VSConstantBuffers; - BYTE GS; - BYTE[2] GSSamplers; - BYTE[16] GSShaderResources; - BYTE[2] GSConstantBuffers; - BYTE PS; - BYTE[2] PSSamplers; - BYTE[16] PSShaderResources; - BYTE[2] PSConstantBuffers; - BYTE[2] IAVertexBuffers; - BYTE IAIndexBuffer; - BYTE IAInputLayout; - BYTE IAPrimitiveTopology; - BYTE OMRenderTargets; - BYTE OMDepthStencilState; - BYTE OMBlendState; - BYTE RSViewports; - BYTE RSScissorRects; - BYTE RSRasterizerState; - BYTE SOBuffers; - BYTE Predication; -} - -extern (C) const GUID IID_ID3D10StateBlock = {0x803425a, 0x57f5, 0x4dd6, [0x94, 0x65, 0xa8, 0x75, 0x70, 0x83, 0x4a, 0x08]}; - -interface ID3D10StateBlock : IUnknown { - extern(Windows) : - HRESULT Capture(); - HRESULT Apply(); - HRESULT ReleaseAllDeviceObjects(); - HRESULT GetDevice(ID3D10Device ppDevice); -} - -HRESULT D3D10StateBlockMaskUnion(D3D10_STATE_BLOCK_MASK* pA, D3D10_STATE_BLOCK_MASK* pB, D3D10_STATE_BLOCK_MASK* pResult); -HRESULT D3D10StateBlockMaskIntersect(D3D10_STATE_BLOCK_MASK* pA, D3D10_STATE_BLOCK_MASK* pB, D3D10_STATE_BLOCK_MASK* pResult); -HRESULT D3D10StateBlockMaskDifference(D3D10_STATE_BLOCK_MASK* pA, D3D10_STATE_BLOCK_MASK* pB, D3D10_STATE_BLOCK_MASK* pResult); -HRESULT D3D10StateBlockMaskEnableCapture(D3D10_STATE_BLOCK_MASK* pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT RangeStart, UINT RangeLength); -HRESULT D3D10StateBlockMaskDisableCapture(D3D10_STATE_BLOCK_MASK* pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT RangeStart, UINT RangeLength); -HRESULT D3D10StateBlockMaskEnableAll(D3D10_STATE_BLOCK_MASK* pMask); -HRESULT D3D10StateBlockMaskDisableAll(D3D10_STATE_BLOCK_MASK* pMask); -BOOL D3D10StateBlockMaskGetSetting(D3D10_STATE_BLOCK_MASK* pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT Entry); -HRESULT D3D10CreateStateBlock(ID3D10Device pDevice, D3D10_STATE_BLOCK_MASK* pStateBlockMask, ID3D10StateBlock ppStateBlock); - -const D3D10_EFFECT_COMPILE_CHILD_EFFECT = 1 << 0; -const D3D10_EFFECT_COMPILE_ALLOW_SLOW_OPS = 1 << 1; -const D3D10_EFFECT_SINGLE_THREADED = 1 << 3; -const D3D10_EFFECT_VARIABLE_POOLED = 1 << 0; -const D3D10_EFFECT_VARIABLE_ANNOTATION = 1 << 1; -const D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT = 1 << 2; - -struct D3D10_EFFECT_TYPE_DESC { - LPCSTR TypeName; - D3D10_SHADER_VARIABLE_CLASS Class; - D3D10_SHADER_VARIABLE_TYPE Type; - UINT Elements; - UINT Members; - UINT Rows; - UINT Columns; - UINT PackedSize; - UINT UnpackedSize; - UINT Stride; -} - -extern (C) const GUID IID_ID3D10EffectType = {0x4e9e1ddc, 0xcd9d, 0x4772, [0xa8, 0x37, 0x0, 0x18, 0x0b, 0x9b, 0x88, 0xfd]}; - -interface ID3D10EffectType { -/* TODO: fix vtbl[0] bug - extern(Windows) : - BOOL IsValid(); - HRESULT GetDesc(D3D10_EFFECT_TYPE_DESC* pDesc); - ID3D10EffectType GetMemberTypeByIndex(UINT Index); - ID3D10EffectType GetMemberTypeByName(LPCSTR Name); - ID3D10EffectType GetMemberTypeBySemantic(LPCSTR Semantic); - LPCSTR GetMemberName(UINT Index); - LPCSTR GetMemberSemantic(UINT Index); - */ -} - -struct D3D10_EFFECT_VARIABLE_DESC { - LPCSTR Name; - LPCSTR Semantic; - UINT Flags; - UINT Annotations; - UINT BufferOffset; - UINT ExplicitBindPoint; -} - -extern (C) const GUID IID_ID3D10EffectVariable = {0xae897105, 0x00e6, 0x45bf, [0xbb, 0x8e, 0x28, 0x1d, 0xd6, 0xdb, 0x8e, 0x1b]}; - -interface ID3D10EffectVariable { -/* TODO: fix vtbl[0] bug - extern(Windows) : - BOOL IsValid(); - ID3D10EffectType GetType(); - HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); - ID3D10EffectVariable GetAnnotationByIndex(UINT Index); - ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); - ID3D10EffectVariable GetMemberByIndex(UINT Index); - ID3D10EffectVariable GetMemberByName(LPCSTR Name); - ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); - ID3D10EffectVariable GetElement(UINT Index); - ID3D10EffectConstantBuffer GetParentConstantBuffer(); - ID3D10EffectScalarVariable AsScalar(); - ID3D10EffectVectorVariable AsVector(); - ID3D10EffectMatrixVariable AsMatrix(); - ID3D10EffectStringVariable AsString(); - ID3D10EffectShaderResourceVariable AsShaderResource(); - ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); - ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); - ID3D10EffectConstantBuffer AsConstantBuffer(); - ID3D10EffectShaderVariable AsShader(); - ID3D10EffectBlendVariable AsBlend(); - ID3D10EffectDepthStencilVariable AsDepthStencil(); - ID3D10EffectRasterizerVariable AsRasterizer(); - ID3D10EffectSamplerVariable AsSampler(); - HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); - */ -} - -extern (C) const GUID IID_ID3D10EffectScalarVariable = {0xe48f7b, 0xd2c8, 0x49e8, [0xa8, 0x6c, 0x2, 0x2d, 0xee, 0x53, 0x43, 0x1f]}; - -interface ID3D10EffectScalarVariable : ID3D10EffectVariable { -/* TODO: fix vtbl[0] bug - extern(Windows) : - BOOL IsValid(); - ID3D10EffectType GetType(); - HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); - ID3D10EffectVariable GetAnnotationByIndex(UINT Index); - ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); - ID3D10EffectVariable GetMemberByIndex(UINT Index); - ID3D10EffectVariable GetMemberByName(LPCSTR Name); - ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); - ID3D10EffectVariable GetElement(UINT Index); - ID3D10EffectConstantBuffer GetParentConstantBuffer(); - ID3D10EffectScalarVariable AsScalar(); - ID3D10EffectVectorVariable AsVector(); - ID3D10EffectMatrixVariable AsMatrix(); - ID3D10EffectStringVariable AsString(); - ID3D10EffectShaderResourceVariable AsShaderResource(); - ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); - ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); - ID3D10EffectConstantBuffer AsConstantBuffer(); - ID3D10EffectShaderVariable AsShader(); - ID3D10EffectBlendVariable AsBlend(); - ID3D10EffectDepthStencilVariable AsDepthStencil(); - ID3D10EffectRasterizerVariable AsRasterizer(); - ID3D10EffectSamplerVariable AsSampler(); - HRESULT SetRawValue(void* pData, UINT ByteOffset, UINT ByteCount); - HRESULT GetRawValue(void* pData, UINT ByteOffset, UINT ByteCount); - HRESULT SetFloat(float Value); - HRESULT GetFloat(float* pValue); - HRESULT SetFloatArray(float* pData, UINT Offset, UINT Count); - HRESULT GetFloatArray(float* pData, UINT Offset, UINT Count); - HRESULT SetInt(int Value); - HRESULT GetInt(int* pValue); - HRESULT SetIntArray(int* pData, UINT Offset, UINT Count); - HRESULT GetIntArray(int* pData, UINT Offset, UINT Count); - HRESULT SetBool(BOOL Value); - HRESULT GetBool(BOOL* pValue); - HRESULT SetBoolArray(BOOL* pData, UINT Offset, UINT Count); - HRESULT GetBoolArray(BOOL* pData, UINT Offset, UINT Count); - */ -} - -extern (C) const GUID IID_ID3D10EffectVectorVariable = {0x62b98c44, 0x1f82, 0x4c67, [0xbc, 0xd0, 0x72, 0xcf, 0x8f, 0x21, 0x7e, 0x81]}; - -interface ID3D10EffectVectorVariable : ID3D10EffectVariable { -/* TODO: fix vtbl[0] bug - extern(Windows) : - BOOL IsValid(); - ID3D10EffectType GetType(); - HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); - ID3D10EffectVariable GetAnnotationByIndex(UINT Index); - ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); - ID3D10EffectVariable GetMemberByIndex(UINT Index); - ID3D10EffectVariable GetMemberByName(LPCSTR Name); - ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); - ID3D10EffectVariable GetElement(UINT Index); - ID3D10EffectConstantBuffer GetParentConstantBuffer(); - ID3D10EffectScalarVariable AsScalar(); - ID3D10EffectVectorVariable AsVector(); - ID3D10EffectMatrixVariable AsMatrix(); - ID3D10EffectStringVariable AsString(); - ID3D10EffectShaderResourceVariable AsShaderResource(); - ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); - ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); - ID3D10EffectConstantBuffer AsConstantBuffer(); - ID3D10EffectShaderVariable AsShader(); - ID3D10EffectBlendVariable AsBlend(); - ID3D10EffectDepthStencilVariable AsDepthStencil(); - ID3D10EffectRasterizerVariable AsRasterizer(); - ID3D10EffectSamplerVariable AsSampler(); - HRESULT SetRawValue(void* pData, UINT ByteOffset, UINT ByteCount); - HRESULT GetRawValue(void* pData, UINT ByteOffset, UINT ByteCount); - HRESULT SetBoolVector (BOOL* pData); - HRESULT SetIntVector (int* pData); - HRESULT SetFloatVector(float* pData); - HRESULT GetBoolVector (BOOL* pData); - HRESULT GetIntVector (int* pData); - HRESULT GetFloatVector(float* pData); - HRESULT SetBoolVectorArray (BOOL* pData, UINT Offset, UINT Count); - HRESULT SetIntVectorArray (int* pData, UINT Offset, UINT Count); - HRESULT SetFloatVectorArray(float* pData, UINT Offset, UINT Count); - HRESULT GetBoolVectorArray (BOOL* pData, UINT Offset, UINT Count); - HRESULT GetIntVectorArray (int* pData, UINT Offset, UINT Count); - HRESULT GetFloatVectorArray(float* pData, UINT Offset, UINT Count); - */ -} - -extern (C) const GUID IID_ID3D10EffectMatrixVariable = {0x50666c24, 0xb82f, 0x4eed, [0xa1, 0x72, 0x5b, 0x6e, 0x7e, 0x85, 0x22, 0xe0]}; - -interface ID3D10EffectMatrixVariable : ID3D10EffectVariable { -/* TODO: fix vtbl[0] bug - extern(Windows) : - BOOL IsValid(); - ID3D10EffectType GetType(); - HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); - ID3D10EffectVariable GetAnnotationByIndex(UINT Index); - ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); - ID3D10EffectVariable GetMemberByIndex(UINT Index); - ID3D10EffectVariable GetMemberByName(LPCSTR Name); - ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); - ID3D10EffectVariable GetElement(UINT Index); - ID3D10EffectConstantBuffer GetParentConstantBuffer(); - ID3D10EffectScalarVariable AsScalar(); - ID3D10EffectVectorVariable AsVector(); - ID3D10EffectMatrixVariable AsMatrix(); - ID3D10EffectStringVariable AsString(); - ID3D10EffectShaderResourceVariable AsShaderResource(); - ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); - ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); - ID3D10EffectConstantBuffer AsConstantBuffer(); - ID3D10EffectShaderVariable AsShader(); - ID3D10EffectBlendVariable AsBlend(); - ID3D10EffectDepthStencilVariable AsDepthStencil(); - ID3D10EffectRasterizerVariable AsRasterizer(); - ID3D10EffectSamplerVariable AsSampler(); - HRESULT SetRawValue(void* pData, UINT ByteOffset, UINT ByteCount); - HRESULT GetRawValue(void* pData, UINT ByteOffset, UINT ByteCount); - HRESULT SetMatrix(float* pData); - HRESULT GetMatrix(float* pData); - HRESULT SetMatrixArray(float* pData, UINT Offset, UINT Count); - HRESULT GetMatrixArray(float* pData, UINT Offset, UINT Count); - HRESULT SetMatrixTranspose(float* pData); - HRESULT GetMatrixTranspose(float* pData); - HRESULT SetMatrixTransposeArray(float* pData, UINT Offset, UINT Count); - HRESULT GetMatrixTransposeArray(float* pData, UINT Offset, UINT Count); - */ -} - -extern (C) const GUID IID_ID3D10EffectStringVariable = {0x71417501, 0x8df9, 0x4e0a, [0xa7, 0x8a, 0x25, 0x5f, 0x97, 0x56, 0xba, 0xff]}; - -interface ID3D10EffectStringVariable : ID3D10EffectVariable { -/* TODO: fix vtbl[0] bug - extern(Windows) : - BOOL IsValid(); - ID3D10EffectType GetType(); - HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); - ID3D10EffectVariable GetAnnotationByIndex(UINT Index); - ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); - ID3D10EffectVariable GetMemberByIndex(UINT Index); - ID3D10EffectVariable GetMemberByName(LPCSTR Name); - ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); - ID3D10EffectVariable GetElement(UINT Index); - ID3D10EffectConstantBuffer GetParentConstantBuffer(); - ID3D10EffectScalarVariable AsScalar(); - ID3D10EffectVectorVariable AsVector(); - ID3D10EffectMatrixVariable AsMatrix(); - ID3D10EffectStringVariable AsString(); - ID3D10EffectShaderResourceVariable AsShaderResource(); - ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); - ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); - ID3D10EffectConstantBuffer AsConstantBuffer(); - ID3D10EffectShaderVariable AsShader(); - ID3D10EffectBlendVariable AsBlend(); - ID3D10EffectDepthStencilVariable AsDepthStencil(); - ID3D10EffectRasterizerVariable AsRasterizer(); - ID3D10EffectSamplerVariable AsSampler(); - HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT GetString(LPCSTR* ppString); - HRESULT GetStringArray(LPCSTR* ppStrings, UINT Offset, UINT Count); - */ -} - -extern (C) const GUID IID_ID3D10EffectShaderResourceVariable = {0xc0a7157b, 0xd872, 0x4b1d, [0x80, 0x73, 0xef, 0xc2, 0xac, 0xd4, 0xb1, 0xfc]}; - -interface ID3D10EffectShaderResourceVariable : ID3D10EffectVariable { -/* TODO: fix vtbl[0] bug - extern(Windows) : - BOOL IsValid(); - ID3D10EffectType GetType(); - HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); - ID3D10EffectVariable GetAnnotationByIndex(UINT Index); - ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); - ID3D10EffectVariable GetMemberByIndex(UINT Index); - ID3D10EffectVariable GetMemberByName(LPCSTR Name); - ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); - ID3D10EffectVariable GetElement(UINT Index); - ID3D10EffectConstantBuffer GetParentConstantBuffer(); - ID3D10EffectScalarVariable AsScalar(); - ID3D10EffectVectorVariable AsVector(); - ID3D10EffectMatrixVariable AsMatrix(); - ID3D10EffectStringVariable AsString(); - ID3D10EffectShaderResourceVariable AsShaderResource(); - ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); - ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); - ID3D10EffectConstantBuffer AsConstantBuffer(); - ID3D10EffectShaderVariable AsShader(); - ID3D10EffectBlendVariable AsBlend(); - ID3D10EffectDepthStencilVariable AsDepthStencil(); - ID3D10EffectRasterizerVariable AsRasterizer(); - ID3D10EffectSamplerVariable AsSampler(); - HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT SetResource(ID3D10ShaderResourceView pResource); - HRESULT GetResource(ID3D10ShaderResourceView* ppResource); - HRESULT SetResourceArray(ID3D10ShaderResourceView* ppResources, UINT Offset, UINT Count); - HRESULT GetResourceArray(ID3D10ShaderResourceView* ppResources, UINT Offset, UINT Count); - */ -} - -extern (C) const GUID IID_ID3D10EffectRenderTargetViewVariable = {0x28ca0cc3, 0xc2c9, 0x40bb, [0xb5, 0x7f, 0x67, 0xb7, 0x37, 0x12, 0x2b, 0x17]}; - -interface ID3D10EffectRenderTargetViewVariable : ID3D10EffectVariable { -/* TODO: fix vtbl[0] bug - extern(Windows) : - BOOL IsValid(); - ID3D10EffectType GetType(); - HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); - ID3D10EffectVariable GetAnnotationByIndex(UINT Index); - ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); - ID3D10EffectVariable GetMemberByIndex(UINT Index); - ID3D10EffectVariable GetMemberByName(LPCSTR Name); - ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); - ID3D10EffectVariable GetElement(UINT Index); - ID3D10EffectConstantBuffer GetParentConstantBuffer(); - ID3D10EffectScalarVariable AsScalar(); - ID3D10EffectVectorVariable AsVector(); - ID3D10EffectMatrixVariable AsMatrix(); - ID3D10EffectStringVariable AsString(); - ID3D10EffectShaderResourceVariable AsShaderResource(); - ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); - ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); - ID3D10EffectConstantBuffer AsConstantBuffer(); - ID3D10EffectShaderVariable AsShader(); - ID3D10EffectBlendVariable AsBlend(); - ID3D10EffectDepthStencilVariable AsDepthStencil(); - ID3D10EffectRasterizerVariable AsRasterizer(); - ID3D10EffectSamplerVariable AsSampler(); - HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT SetRenderTarget(ID3D10RenderTargetView pResource); - HRESULT GetRenderTarget(ID3D10RenderTargetView* ppResource); - HRESULT SetRenderTargetArray(ID3D10RenderTargetView* ppResources, UINT Offset, UINT Count); - HRESULT GetRenderTargetArray(ID3D10RenderTargetView* ppResources, UINT Offset, UINT Count); - */ -} - -extern (C) const GUID IID_ID3D10EffectDepthStencilViewVariable = {0x3e02c918, 0xcc79, 0x4985, [0xb6, 0x22, 0x2d, 0x92, 0xad, 0x70, 0x16, 0x23]}; - -interface ID3D10EffectDepthStencilViewVariable : ID3D10EffectVariable { -/* TODO: fix vtbl[0] bug - extern(Windows) : - BOOL IsValid(); - ID3D10EffectType GetType(); - HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); - ID3D10EffectVariable GetAnnotationByIndex(UINT Index); - ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); - ID3D10EffectVariable GetMemberByIndex(UINT Index); - ID3D10EffectVariable GetMemberByName(LPCSTR Name); - ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); - ID3D10EffectVariable GetElement(UINT Index); - ID3D10EffectConstantBuffer GetParentConstantBuffer(); - ID3D10EffectScalarVariable AsScalar(); - ID3D10EffectVectorVariable AsVector(); - ID3D10EffectMatrixVariable AsMatrix(); - ID3D10EffectStringVariable AsString(); - ID3D10EffectShaderResourceVariable AsShaderResource(); - ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); - ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); - ID3D10EffectConstantBuffer AsConstantBuffer(); - ID3D10EffectShaderVariable AsShader(); - ID3D10EffectBlendVariable AsBlend(); - ID3D10EffectDepthStencilVariable AsDepthStencil(); - ID3D10EffectRasterizerVariable AsRasterizer(); - ID3D10EffectSamplerVariable AsSampler(); - HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT SetDepthStencil(ID3D10DepthStencilView pResource); - HRESULT GetDepthStencil(ID3D10DepthStencilView* ppResource); - HRESULT SetDepthStencilArray(ID3D10DepthStencilView* ppResources, UINT Offset, UINT Count); - HRESULT GetDepthStencilArray(ID3D10DepthStencilView* ppResources, UINT Offset, UINT Count); - */ -} - -extern (C) const GUID IID_ID3D10EffectConstantBuffer = {0x56648f4d, 0xcc8b, 0x4444, [0xa5, 0xad, 0xb5, 0xa3, 0xd7, 0x6e, 0x91, 0xb3]}; - -interface ID3D10EffectConstantBuffer : ID3D10EffectVariable { -/* TODO: fix vtbl[0] bug - extern(Windows) : - ID3D10EffectType GetType(); - HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); - ID3D10EffectVariable GetAnnotationByIndex(UINT Index); - ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); - ID3D10EffectVariable GetMemberByIndex(UINT Index); - ID3D10EffectVariable GetMemberByName(LPCSTR Name); - ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); - ID3D10EffectVariable GetElement(UINT Index); - ID3D10EffectConstantBuffer GetParentConstantBuffer(); - ID3D10EffectScalarVariable AsScalar(); - ID3D10EffectVectorVariable AsVector(); - ID3D10EffectMatrixVariable AsMatrix(); - ID3D10EffectStringVariable AsString(); - ID3D10EffectShaderResourceVariable AsShaderResource(); - ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); - ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); - ID3D10EffectConstantBuffer AsConstantBuffer(); - ID3D10EffectShaderVariable AsShader(); - ID3D10EffectBlendVariable AsBlend(); - ID3D10EffectDepthStencilVariable AsDepthStencil(); - ID3D10EffectRasterizerVariable AsRasterizer(); - ID3D10EffectSamplerVariable AsSampler(); - HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT SetConstantBuffer(ID3D10Buffer pConstantBuffer); - HRESULT GetConstantBuffer(ID3D10Buffer* ppConstantBuffer); - HRESULT SetTextureBuffer(ID3D10ShaderResourceView pTextureBuffer); - HRESULT GetTextureBuffer(ID3D10ShaderResourceView* ppTextureBuffer); - */ -} - -struct D3D10_EFFECT_SHADER_DESC { - BYTE* pInputSignature; - BOOL IsInline; - BYTE* pBytecode; - UINT BytecodeLength; - LPCSTR SODecl; - UINT NumInputSignatureEntries; - UINT NumOutputSignatureEntries; -} - -extern (C) const GUID IID_ID3D10EffectShaderVariable = {0x80849279, 0xc799, 0x4797, [0x8c, 0x33, 0x4, 0x7, 0xa0, 0x7d, 0x9e, 0x6]}; - -interface ID3D10EffectShaderVariable : ID3D10EffectVariable { -/* TODO: fix vtbl[0] bug - extern(Windows) : - ID3D10EffectType GetType(); - HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); - ID3D10EffectVariable GetAnnotationByIndex(UINT Index); - ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); - ID3D10EffectVariable GetMemberByIndex(UINT Index); - ID3D10EffectVariable GetMemberByName(LPCSTR Name); - ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); - ID3D10EffectVariable GetElement(UINT Index); - ID3D10EffectConstantBuffer GetParentConstantBuffer(); - ID3D10EffectScalarVariable AsScalar(); - ID3D10EffectVectorVariable AsVector(); - ID3D10EffectMatrixVariable AsMatrix(); - ID3D10EffectStringVariable AsString(); - ID3D10EffectShaderResourceVariable AsShaderResource(); - ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); - ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); - ID3D10EffectConstantBuffer AsConstantBuffer(); - ID3D10EffectShaderVariable AsShader(); - ID3D10EffectBlendVariable AsBlend(); - ID3D10EffectDepthStencilVariable AsDepthStencil(); - ID3D10EffectRasterizerVariable AsRasterizer(); - ID3D10EffectSamplerVariable AsSampler(); - HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT GetShaderDesc(UINT ShaderIndex, D3D10_EFFECT_SHADER_DESC* pDesc); - HRESULT GetVertexShader(UINT ShaderIndex, ID3D10VertexShader* ppVS); - HRESULT GetGeometryShader(UINT ShaderIndex, ID3D10GeometryShader* ppGS); - HRESULT GetPixelShader(UINT ShaderIndex, ID3D10PixelShader* ppPS); - HRESULT GetInputSignatureElementDesc(UINT ShaderIndex, UINT Element, D3D10_SIGNATURE_PARAMETER_DESC* pDesc); - HRESULT GetOutputSignatureElementDesc(UINT ShaderIndex, UINT Element, D3D10_SIGNATURE_PARAMETER_DESC* pDesc); - */ -} - -extern (C) const GUID IID_ID3D10EffectBlendVariable = {0x1fcd2294, 0xdf6d, 0x4eae, [0x86, 0xb3, 0xe, 0x91, 0x60, 0xcf, 0xb0, 0x7b]}; - -interface ID3D10EffectBlendVariable : ID3D10EffectVariable { -/* TODO: fix vtbl[0] bug - extern(Windows) : - ID3D10EffectType GetType(); - HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); - ID3D10EffectVariable GetAnnotationByIndex(UINT Index); - ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); - ID3D10EffectVariable GetMemberByIndex(UINT Index); - ID3D10EffectVariable GetMemberByName(LPCSTR Name); - ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); - ID3D10EffectVariable GetElement(UINT Index); - ID3D10EffectConstantBuffer GetParentConstantBuffer(); - ID3D10EffectScalarVariable AsScalar(); - ID3D10EffectVectorVariable AsVector(); - ID3D10EffectMatrixVariable AsMatrix(); - ID3D10EffectStringVariable AsString(); - ID3D10EffectShaderResourceVariable AsShaderResource(); - ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); - ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); - ID3D10EffectConstantBuffer AsConstantBuffer(); - ID3D10EffectShaderVariable AsShader(); - ID3D10EffectBlendVariable AsBlend(); - ID3D10EffectDepthStencilVariable AsDepthStencil(); - ID3D10EffectRasterizerVariable AsRasterizer(); - ID3D10EffectSamplerVariable AsSampler(); - HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT GetBlendState(UINT Index, ID3D10BlendState* ppBlendState); - HRESULT GetBackingStore(UINT Index, D3D10_BLEND_DESC* pBlendDesc); - */ -} - -extern (C) const GUID IID_ID3D10EffectDepthStencilVariable = {0xaf482368, 0x330a, 0x46a5, [0x9a, 0x5c, 0x1, 0xc7, 0x1a, 0xf2, 0x4c, 0x8d]}; - -interface ID3D10EffectDepthStencilVariable : ID3D10EffectVariable { -/* TODO: fix vtbl[0] bug - extern(Windows) : - ID3D10EffectType GetType(); - HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); - ID3D10EffectVariable GetAnnotationByIndex(UINT Index); - ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); - ID3D10EffectVariable GetMemberByIndex(UINT Index); - ID3D10EffectVariable GetMemberByName(LPCSTR Name); - ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); - ID3D10EffectVariable GetElement(UINT Index); - ID3D10EffectConstantBuffer GetParentConstantBuffer(); - ID3D10EffectScalarVariable AsScalar(); - ID3D10EffectVectorVariable AsVector(); - ID3D10EffectMatrixVariable AsMatrix(); - ID3D10EffectStringVariable AsString(); - ID3D10EffectShaderResourceVariable AsShaderResource(); - ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); - ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); - ID3D10EffectConstantBuffer AsConstantBuffer(); - ID3D10EffectShaderVariable AsShader(); - ID3D10EffectBlendVariable AsBlend(); - ID3D10EffectDepthStencilVariable AsDepthStencil(); - ID3D10EffectRasterizerVariable AsRasterizer(); - ID3D10EffectSamplerVariable AsSampler(); - HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT GetDepthStencilState(UINT Index, ID3D10DepthStencilState* ppDepthStencilState); - HRESULT GetBackingStore(UINT Index, D3D10_DEPTH_STENCIL_DESC* pDepthStencilDesc); - */ -} - -extern (C) const GUID IID_ID3D10EffectRasterizerVariable = {0x21af9f0e, 0x4d94, 0x4ea9, [0x97, 0x85, 0x2c, 0xb7, 0x6b, 0x8c, 0xb, 0x34]}; - -interface ID3D10EffectRasterizerVariable : ID3D10EffectVariable { -/* TODO: fix vtbl[0] bug - extern(Windows) : - ID3D10EffectType GetType(); - HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); - ID3D10EffectVariable GetAnnotationByIndex(UINT Index); - ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); - ID3D10EffectVariable GetMemberByIndex(UINT Index); - ID3D10EffectVariable GetMemberByName(LPCSTR Name); - ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); - ID3D10EffectVariable GetElement(UINT Index); - ID3D10EffectConstantBuffer GetParentConstantBuffer(); - ID3D10EffectScalarVariable AsScalar(); - ID3D10EffectVectorVariable AsVector(); - ID3D10EffectMatrixVariable AsMatrix(); - ID3D10EffectStringVariable AsString(); - ID3D10EffectShaderResourceVariable AsShaderResource(); - ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); - ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); - ID3D10EffectConstantBuffer AsConstantBuffer(); - ID3D10EffectShaderVariable AsShader(); - ID3D10EffectBlendVariable AsBlend(); - ID3D10EffectDepthStencilVariable AsDepthStencil(); - ID3D10EffectRasterizerVariable AsRasterizer(); - ID3D10EffectSamplerVariable AsSampler(); - HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT GetRasterizerState(UINT Index, ID3D10RasterizerState* ppRasterizerState); - HRESULT GetBackingStore(UINT Index, D3D10_RASTERIZER_DESC* pRasterizerDesc); - */ -} - -extern (C) const GUID IID_ID3D10EffectSamplerVariable = {0x6530d5c7, 0x07e9, 0x4271, [0xa4, 0x18, 0xe7, 0xce, 0x4b, 0xd1, 0xe4, 0x80]}; - -interface ID3D10EffectSamplerVariable : ID3D10EffectVariable { -/* TODO: fix vtbl[0] bug - extern(Windows) : - ID3D10EffectType GetType(); - HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); - ID3D10EffectVariable GetAnnotationByIndex(UINT Index); - ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); - ID3D10EffectVariable GetMemberByIndex(UINT Index); - ID3D10EffectVariable GetMemberByName(LPCSTR Name); - ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); - ID3D10EffectVariable GetElement(UINT Index); - ID3D10EffectConstantBuffer GetParentConstantBuffer(); - ID3D10EffectScalarVariable AsScalar(); - ID3D10EffectVectorVariable AsVector(); - ID3D10EffectMatrixVariable AsMatrix(); - ID3D10EffectStringVariable AsString(); - ID3D10EffectShaderResourceVariable AsShaderResource(); - ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); - ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); - ID3D10EffectConstantBuffer AsConstantBuffer(); - ID3D10EffectShaderVariable AsShader(); - ID3D10EffectBlendVariable AsBlend(); - ID3D10EffectDepthStencilVariable AsDepthStencil(); - ID3D10EffectRasterizerVariable AsRasterizer(); - ID3D10EffectSamplerVariable AsSampler(); - HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); - HRESULT GetSampler(UINT Index, ID3D10SamplerState* ppSampler); - HRESULT GetBackingStore(UINT Index, D3D10_SAMPLER_DESC* pSamplerDesc); - */ -} - -struct D3D10_PASS_DESC { - LPCSTR Name; - UINT Annotations; - BYTE* pIAInputSignature; - SIZE_T IAInputSignatureSize; - UINT StencilRef; - UINT SampleMask; - FLOAT[4] BlendFactor; -} - -struct D3D10_PASS_SHADER_DESC { - ID3D10EffectShaderVariable pShaderVariable; - UINT ShaderIndex; -} - -extern (C) const GUID IID_ID3D10EffectPass = {0x5cfbeb89, 0x1a06, 0x46e0, [0xb2, 0x82, 0xe3, 0xf9, 0xbf, 0xa3, 0x6a, 0x54]}; - -/+interface ID3D10EffectPass { -/* TODO: fix vtbl[0] bug - extern(Windows) : - BOOL IsValid(); - HRESULT GetDesc(D3D10_PASS_DESC* pDesc); - HRESULT GetVertexShaderDesc(D3D10_PASS_SHADER_DESC* pDesc); - HRESULT GetGeometryShaderDesc(D3D10_PASS_SHADER_DESC* pDesc); - HRESULT GetPixelShaderDesc(D3D10_PASS_SHADER_DESC* pDesc); - ID3D10EffectVariable GetAnnotationByIndex(UINT Index); - ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); - HRESULT Apply(UINT Flags); - HRESULT ComputeStateBlockMask(D3D10_STATE_BLOCK_MASK* pStateBlockMask); - */ -}+/ -/** - * HACK to FIX vtbl[0] bug: - * This is an example HACK how to fix all interfaces which are NOT derived from - * IUnknown. They need the first entry in their vtbl[] point to the first - * virtual function. - * See: - * http://www.digitalmars.com/d/cpp_interface.html - * http://d.puremagic.com/issues/show_bug.cgi?id=1687 - */ -struct ID3D10EffectPassVtbl { - extern(Windows) : - BOOL function(ID3D10EffectPass) IsValid; - HRESULT function(ID3D10EffectPass, D3D10_PASS_DESC* pDesc) GetDesc; - HRESULT function(ID3D10EffectPass, D3D10_PASS_SHADER_DESC* pDesc) GetVertexShaderDesc; - HRESULT function(ID3D10EffectPass, D3D10_PASS_SHADER_DESC* pDesc) GetGeometryShaderDesc; - HRESULT function(ID3D10EffectPass, D3D10_PASS_SHADER_DESC* pDesc) GetPixelShaderDesc; - ID3D10EffectVariable function(ID3D10EffectPass, UINT Index) GetAnnotationByIndex; - ID3D10EffectVariable function(ID3D10EffectPass, LPCSTR Name) GetAnnotationByName; - HRESULT function(ID3D10EffectPass, UINT Flags) Apply; - HRESULT function(ID3D10EffectPass, D3D10_STATE_BLOCK_MASK* pStateBlockMask) ComputeStateBlockMask; -} -alias ID3D10EffectPassVtbl** ID3D10EffectPass; - -struct D3D10_TECHNIQUE_DESC { - LPCSTR Name; - UINT Passes; - UINT Annotations; -} - -extern (C) const GUID IID_ID3D10EffectTechnique = {0xdb122ce8, 0xd1c9, 0x4292, [0xb2, 0x37, 0x24, 0xed, 0x3d, 0xe8, 0xb1, 0x75]}; - -/+interface ID3D10EffectTechnique { -/* TODO: fix vtbl[0] bug - extern(Windows) : - BOOL IsValid(); - HRESULT GetDesc(D3D10_TECHNIQUE_DESC* pDesc); - ID3D10EffectVariable GetAnnotationByIndex(UINT Index); - ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); - ID3D10EffectPass GetPassByIndex(UINT Index); - ID3D10EffectPass GetPassByName(LPCSTR Name); - HRESULT ComputeStateBlockMask(D3D10_STATE_BLOCK_MASK* pStateBlockMask); - */ -}+/ -/** - * HACK to FIX vtbl[0] bug: - * This is an example HACK how to fix all interfaces which are NOT derived from - * IUnknown. They need the first entry in their vtbl[] point to the first - * virtual function. - * See: - * http://www.digitalmars.com/d/cpp_interface.html - * http://d.puremagic.com/issues/show_bug.cgi?id=1687 - */ -struct ID3D10EffectTechniqueVtbl { - extern(Windows) : - BOOL function(ID3D10EffectTechnique) IsValid; - HRESULT function(ID3D10EffectTechnique, D3D10_TECHNIQUE_DESC* pDesc) GetDesc; - ID3D10EffectVariable function(ID3D10EffectTechnique, UINT Index) GetAnnotationByIndex; - ID3D10EffectVariable function(ID3D10EffectTechnique, LPCSTR Name) GetAnnotationByName; - ID3D10EffectPass function(ID3D10EffectTechnique, UINT Index) GetPassByIndex; - ID3D10EffectPass function(ID3D10EffectTechnique, LPCSTR Name) GetPassByName; - HRESULT function(ID3D10EffectTechnique, D3D10_STATE_BLOCK_MASK* pStateBlockMask) ComputeStateBlockMask; -} -alias ID3D10EffectTechniqueVtbl** ID3D10EffectTechnique; - -struct D3D10_EFFECT_DESC { - BOOL IsChildEffect; - UINT ConstantBuffers; - UINT SharedConstantBuffers; - UINT GlobalVariables; - UINT SharedGlobalVariables; - UINT Techniques; -} - -extern (C) const GUID IID_ID3D10Effect = {0x51b0ca8b, 0xec0b, 0x4519, [0x87, 0xd, 0x8e, 0xe1, 0xcb, 0x50, 0x17, 0xc7]}; - -interface ID3D10Effect : IUnknown { - extern(Windows) : - BOOL IsValid(); - BOOL IsPool(); - HRESULT GetDevice(ID3D10Device* ppDevice); - HRESULT GetDesc(D3D10_EFFECT_DESC* pDesc); - ID3D10EffectConstantBuffer GetConstantBufferByIndex(UINT Index); - ID3D10EffectConstantBuffer GetConstantBufferByName(LPCSTR Name); - ID3D10EffectVariable GetVariableByIndex(UINT Index); - ID3D10EffectVariable GetVariableByName(LPCSTR Name); - ID3D10EffectVariable GetVariableBySemantic(LPCSTR Semantic); - ID3D10EffectTechnique GetTechniqueByIndex(UINT Index); - ID3D10EffectTechnique GetTechniqueByName(LPCSTR Name); - HRESULT Optimize(); - BOOL IsOptimized(); -} - -extern (C) const GUID IID_ID3D10EffectPool = {0x9537ab04, 0x3250, 0x412e, [0x82, 0x13, 0xfc, 0xd2, 0xf8, 0x67, 0x79, 0x33]}; - -interface ID3D10EffectPool : IUnknown { - extern(Windows) : - ID3D10Effect AsEffect(); -} - -HRESULT D3D10CompileEffectFromMemory(void* pData, SIZE_T DataLength, LPCSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, UINT HLSLFlags, UINT FXFlags, ID3D10Blob* ppCompiledEffect, ID3D10Blob* ppErrors); -HRESULT D3D10CreateEffectFromMemory(void* pData, SIZE_T DataLength, UINT FXFlags, ID3D10Device pDevice, ID3D10EffectPool pEffectPool, ID3D10Effect* ppEffect); -HRESULT D3D10CreateEffectPoolFromMemory(void* pData, SIZE_T DataLength, UINT FXFlags, ID3D10Device pDevice, ID3D10EffectPool* ppEffectPool); -HRESULT D3D10DisassembleEffect(ID3D10Effect pEffect, BOOL EnableColorCode, ID3D10Blob* ppDisassembly); DELETED src/win32/directx/d3d10misc.d Index: src/win32/directx/d3d10misc.d ================================================================== --- src/win32/directx/d3d10misc.d +++ src/win32/directx/d3d10misc.d @@ -1,45 +0,0 @@ -/***********************************************************************\ -* d3d10misc.d * -* * -* Windows API header module * -* * -* Placed into public domain * -\***********************************************************************/ -module win32.directx.d3d10misc; - -private import win32.windows; - -private import win32.directx.dxgi; -private import win32.directx.d3d10; - -extern (C) const GUID IID_ID3D10Blob = { - 0x8BA5FB08, 0x5195, 0x40E2, [0xAC, 0x58, 0x0D, 0x98, 0x9C, 0x3A, 0x01, 0x02] -}; - -interface ID3D10Blob : IUnknown { - extern(Windows) : - LPVOID GetBufferPointer(); - SIZE_T GetBufferSize(); -} - -enum D3D10_DRIVER_TYPE { - D3D10_DRIVER_TYPE_HARDWARE = 0, - D3D10_DRIVER_TYPE_REFERENCE = 1, - D3D10_DRIVER_TYPE_NULL = 2, - D3D10_DRIVER_TYPE_SOFTWARE = 3 -} - -extern (C) const GUID GUID_DeviceType = { - 0xD722FB4D, 0x7A68, 0x437A, [0xB2, 0x0C, 0x58, 0x04, 0xEE, 0x24, 0x94, 0xA6] -}; - -extern(Windows) { - HRESULT D3D10CreateDevice(IDXGIAdapter pAdapter, - D3D10_DRIVER_TYPE DriverType, HMODULE Software, UINT Flags, - UINT SDKVersion, ID3D10Device* ppDevice); - HRESULT D3D10CreateDeviceAndSwapChain(IDXGIAdapter pAdapter, - D3D10_DRIVER_TYPE DriverType, HMODULE Software, UINT Flags, - UINT SDKVersion, DXGI_SWAP_CHAIN_DESC* pSwapChainDesc, - IDXGISwapChain* ppSwapChain, ID3D10Device* ppDevice); - HRESULT D3D10CreateBlob(SIZE_T NumBytes, ID3D10Blob* ppBuffer); -} DELETED src/win32/directx/d3d10shader.d Index: src/win32/directx/d3d10shader.d ================================================================== --- src/win32/directx/d3d10shader.d +++ src/win32/directx/d3d10shader.d @@ -1,301 +0,0 @@ -/***********************************************************************\ -* d3d10shader.d * -* * -* Windows API header module * -* * -* Placed into public domain * -\***********************************************************************/ -module win32.directx.d3d10shader; - -private import win32.windows; -private import win32.directx.d3d10; - - -uint D3D10_TX_VERSION(uint _Major, uint _Minor) { - return ('T' << 24) | ('X' << 16) | (_Major << 8) | _Minor; -} - -const D3D10_SHADER_DEBUG = 1 << 0; -const D3D10_SHADER_SKIP_VALIDATION = 1 << 1; -const D3D10_SHADER_SKIP_OPTIMIZATION = 1 << 2; -const D3D10_SHADER_PACK_MATRIX_ROW_MAJOR = 1 << 3; -const D3D10_SHADER_PACK_MATRIX_COLUMN_MAJOR = 1 << 4; -const D3D10_SHADER_PARTIAL_PRECISION = 1 << 5; -const D3D10_SHADER_FORCE_VS_SOFTWARE_NO_OPT = 1 << 6; -const D3D10_SHADER_FORCE_PS_SOFTWARE_NO_OPT = 1 << 7; -const D3D10_SHADER_NO_PRESHADER = 1 << 8; -const D3D10_SHADER_AVOID_FLOW_CONTROL = 1 << 9; -const D3D10_SHADER_PREFER_FLOW_CONTROL = 1 << 10; -const D3D10_SHADER_ENABLE_STRICTNESS = 1 << 11; -const D3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITY = 1 << 12; -const D3D10_SHADER_IEEE_STRICTNESS = 1 << 13; -const D3D10_SHADER_OPTIMIZATION_LEVEL0 = 1 << 14; -const D3D10_SHADER_OPTIMIZATION_LEVEL1 = 0; -const D3D10_SHADER_OPTIMIZATION_LEVEL2 = (1 << 14) | (1 << 15); -const D3D10_SHADER_OPTIMIZATION_LEVEL3 = 1 << 15; - -struct D3D10_SHADER_MACRO { - LPCSTR Name; - LPCSTR Definition; -} - -enum D3D10_SHADER_VARIABLE_CLASS { - D3D10_SVC_SCALAR, - D3D10_SVC_VECTOR, - D3D10_SVC_MATRIX_ROWS, - D3D10_SVC_MATRIX_COLUMNS, - D3D10_SVC_OBJECT, - D3D10_SVC_STRUCT, - D3D10_SVC_FORCE_DWORD = 0x7fffffff -} - -enum D3D10_SHADER_VARIABLE_FLAGS { - D3D10_SVF_USERPACKED = 1, - D3D10_SVF_USED = 2, - D3D10_SVF_FORCE_DWORD = 0x7fffffff -} - -enum D3D10_SHADER_VARIABLE_TYPE { - D3D10_SVT_VOID = 0, - D3D10_SVT_BOOL = 1, - D3D10_SVT_INT = 2, - D3D10_SVT_FLOAT = 3, - D3D10_SVT_STRING = 4, - D3D10_SVT_TEXTURE = 5, - D3D10_SVT_TEXTURE1D = 6, - D3D10_SVT_TEXTURE2D = 7, - D3D10_SVT_TEXTURE3D = 8, - D3D10_SVT_TEXTURECUBE = 9, - D3D10_SVT_SAMPLER = 10, - D3D10_SVT_PIXELSHADER = 15, - D3D10_SVT_VERTEXSHADER = 16, - D3D10_SVT_UINT = 19, - D3D10_SVT_UINT8 = 20, - D3D10_SVT_GEOMETRYSHADER = 21, - D3D10_SVT_RASTERIZER = 22, - D3D10_SVT_DEPTHSTENCIL = 23, - D3D10_SVT_BLEND = 24, - D3D10_SVT_BUFFER = 25, - D3D10_SVT_CBUFFER = 26, - D3D10_SVT_TBUFFER = 27, - D3D10_SVT_TEXTURE1DARRAY = 28, - D3D10_SVT_TEXTURE2DARRAY = 29, - D3D10_SVT_RENDERTARGETVIEW = 30, - D3D10_SVT_DEPTHSTENCILVIEW = 31, - D3D10_SVT_TEXTURE2DMS = 32, - D3D10_SVT_TEXTURE2DMSARRAY = 33, - D3D10_SVT_TEXTURECUBEARRAY = 34, - D3D10_SVT_FORCE_DWORD = 0x7fffffff -} - -enum D3D10_SHADER_INPUT_FLAGS { - D3D10_SIF_USERPACKED = 1, - D3D10_SIF_COMPARISON_SAMPLER = 2, - D3D10_SIF_TEXTURE_COMPONENT_0 = 4, - D3D10_SIF_TEXTURE_COMPONENT_1 = 8, - D3D10_SIF_TEXTURE_COMPONENTS = 12, - D3D10_SIF_FORCE_DWORD = 0x7fffffff -} - -enum D3D10_SHADER_INPUT_TYPE { - D3D10_SIT_CBUFFER, - D3D10_SIT_TBUFFER, - D3D10_SIT_TEXTURE, - D3D10_SIT_SAMPLER -} - -enum D3D10_SHADER_CBUFFER_FLAGS { - D3D10_CBF_USERPACKED = 1, - D3D10_CBF_FORCE_DWORD = 0x7fffffff -} - -enum D3D10_CBUFFER_TYPE { - D3D10_CT_CBUFFER, - D3D10_CT_TBUFFER -} - -enum D3D10_NAME { - D3D10_NAME_UNDEFINED = 0, - D3D10_NAME_POSITION = 1, - D3D10_NAME_CLIP_DISTANCE = 2, - D3D10_NAME_CULL_DISTANCE = 3, - D3D10_NAME_RENDER_TARGET_ARRAY_INDEX = 4, - D3D10_NAME_VIEWPORT_ARRAY_INDEX = 5, - D3D10_NAME_VERTEX_ID = 6, - D3D10_NAME_PRIMITIVE_ID = 7, - D3D10_NAME_INSTANCE_ID = 8, - D3D10_NAME_IS_FRONT_FACE = 9, - D3D10_NAME_SAMPLE_INDEX = 10, - D3D10_NAME_TARGET = 64, - D3D10_NAME_DEPTH = 65, - D3D10_NAME_COVERAGE = 66 -} - -enum D3D10_RESOURCE_RETURN_TYPE { - D3D10_RETURN_TYPE_UNORM = 1, - D3D10_RETURN_TYPE_SNORM, - D3D10_RETURN_TYPE_SINT, - D3D10_RETURN_TYPE_UINT, - D3D10_RETURN_TYPE_FLOAT, - D3D10_RETURN_TYPE_MIXED -} - -enum D3D10_REGISTER_COMPONENT_TYPE { - D3D10_REGISTER_COMPONENT_UNKNOWN = 0, - D3D10_REGISTER_COMPONENT_UINT32, - D3D10_REGISTER_COMPONENT_SINT32, - D3D10_REGISTER_COMPONENT_FLOAT32 -} - -enum D3D10_INCLUDE_TYPE { - D3D10_INCLUDE_LOCAL, - D3D10_INCLUDE_SYSTEM, - D3D10_INCLUDE_FORCE_DWORD = 0x7fffffff -} - -interface ID3D10Include { -/* TODO: fix vtbl[0] bug - extern(Windows) : - HRESULT Open(D3D10_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID* ppData, UINT* pBytes); - HRESULT Close(LPCVOID pData); - */ -} - -struct D3D10_SHADER_DESC { - UINT Version; - LPCSTR Creator; - UINT Flags; - UINT ConstantBuffers; - UINT BoundResources; - UINT InputParameters; - UINT OutputParameters; - UINT InstructionCount; - UINT TempRegisterCount; - UINT TempArrayCount; - UINT DefCount; - UINT DclCount; - UINT TextureNormalInstructions; - UINT TextureLoadInstructions; - UINT TextureCompInstructions; - UINT TextureBiasInstructions; - UINT TextureGradientInstructions; - UINT FloatInstructionCount; - UINT IntInstructionCount; - UINT UintInstructionCount; - UINT StaticFlowControlCount; - UINT DynamicFlowControlCount; - UINT MacroInstructionCount; - UINT ArrayInstructionCount; - UINT CutInstructionCount; - UINT EmitInstructionCount; - D3D10_PRIMITIVE_TOPOLOGY GSOutputTopology; - UINT GSMaxOutputVertexCount; -} - -struct D3D10_SHADER_BUFFER_DESC { - LPCSTR Name; - D3D10_CBUFFER_TYPE Type; - UINT Variables; - UINT Size; - UINT uFlags; -} - -struct D3D10_SHADER_VARIABLE_DESC { - LPCSTR Name; - UINT StartOffset; - UINT Size; - UINT uFlags; - LPVOID DefaultValue; -} - -struct D3D10_SHADER_TYPE_DESC { - D3D10_SHADER_VARIABLE_CLASS Class; - D3D10_SHADER_VARIABLE_TYPE Type; - UINT Rows; - UINT Columns; - UINT Elements; - UINT Members; - UINT Offset; -} - -struct D3D10_SHADER_INPUT_BIND_DESC { - LPCSTR Name; - D3D10_SHADER_INPUT_TYPE Type; - UINT BindPoint; - UINT BindCount; - UINT uFlags; - D3D10_RESOURCE_RETURN_TYPE ReturnType; - D3D10_SRV_DIMENSION Dimension; - UINT NumSamples; -} - -struct D3D10_SIGNATURE_PARAMETER_DESC { - LPCSTR SemanticName; - UINT SemanticIndex; - UINT Register; - D3D10_NAME SystemValueType; - D3D10_REGISTER_COMPONENT_TYPE ComponentType; - BYTE Mask; - BYTE ReadWriteMask; -} - -extern(C) const GUID IID_ID3D10ShaderReflectionType = {0xc530ad7d, 0x9b16, 0x4395, [0xa9, 0x79, 0xba, 0x2e, 0xcf, 0xf8, 0x3a, 0xdd]}; - -interface ID3D10ShaderReflectionType { -/* TODO: fix vtbl[0] bug - extern(Windows) : - HRESULT GetDesc(D3D10_SHADER_TYPE_DESC* pDesc); - ID3D10ShaderReflectionType* GetMemberTypeByIndex(UINT Index); - ID3D10ShaderReflectionType* GetMemberTypeByName(LPCSTR Name); - LPCSTR GetMemberTypeName(UINT Index); - */ -} - -extern(C) const GUID IID_ID3D10ShaderReflectionVariable = {0x1bf63c95, 0x2650, 0x405d, [0x99, 0xc1, 0x36, 0x36, 0xbd, 0x1d, 0xa0, 0xa1]}; - -interface ID3D10ShaderReflectionVariable { -/* TODO: fix vtbl[0] bug - extern(Windows) : - HRESULT GetDesc(D3D10_SHADER_VARIABLE_DESC* pDesc); - ID3D10ShaderReflectionType* GetType(); - */ -} - -extern(C) const GUID IID_ID3D10ShaderReflectionConstantBuffer = {0x66c66a94, 0xdddd, 0x4b62, [0xa6, 0x6a, 0xf0, 0xda, 0x33, 0xc2, 0xb4, 0xd0]}; - -interface ID3D10ShaderReflectionConstantBuffer { -/* TODO: fix vtbl[0] bug - extern(Windows) : - HRESULT GetDesc(D3D10_SHADER_BUFFER_DESC* pDesc); - ID3D10ShaderReflectionVariable* GetVariableByIndex(UINT Index); - ID3D10ShaderReflectionVariable* GetVariableByName(LPCSTR Name); - */ -} - -extern(C) const GUID IID_ID3D10ShaderReflection = {0xd40e20b6, 0xf8f7, 0x42ad, [0xab, 0x20, 0x4b, 0xaf, 0x8f, 0x15, 0xdf, 0xaa]}; - -interface ID3D10ShaderReflection : IUnknown { - extern(Windows) : - HRESULT QueryInterface(REFIID iid, LPVOID* ppv); - ULONG AddRef(); - ULONG Release(); - HRESULT GetDesc(D3D10_SHADER_DESC* pDesc); - ID3D10ShaderReflectionConstantBuffer* GetConstantBufferByIndex(UINT Index); - ID3D10ShaderReflectionConstantBuffer* GetConstantBufferByName(LPCSTR Name); - HRESULT GetResourceBindingDesc(UINT ResourceIndex, D3D10_SHADER_INPUT_BIND_DESC* pDesc); - HRESULT GetInputParameterDesc(UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC* pDesc); - HRESULT GetOutputParameterDesc(UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC* pDesc); -} - -HRESULT D3D10CompileShader(LPCSTR pSrcData, SIZE_T SrcDataLen, LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags, ID3D10Blob* ppShader, ID3D10Blob* ppErrorMsgs); -HRESULT D3D10DisassembleShader(void* pShader, SIZE_T BytecodeLength, BOOL EnableColorCode, LPCSTR pComments, ID3D10Blob* ppDisassembly); -LPCSTR D3D10GetPixelShaderProfile(ID3D10Device pDevice); -LPCSTR D3D10GetVertexShaderProfile(ID3D10Device pDevice); -LPCSTR D3D10GetGeometryShaderProfile(ID3D10Device pDevice); -HRESULT D3D10ReflectShader(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10ShaderReflection* ppReflector); -HRESULT D3D10PreprocessShader(LPCSTR pSrcData, SIZE_T SrcDataSize, LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, ID3D10Blob* ppShaderText, ID3D10Blob* ppErrorMsgs); -HRESULT D3D10GetInputSignatureBlob(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob* ppSignatureBlob); -HRESULT D3D10GetOutputSignatureBlob(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob* ppSignatureBlob); -HRESULT D3D10GetInputAndOutputSignatureBlob(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob* ppSignatureBlob); -HRESULT D3D10GetShaderDebugInfo(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob* ppDebugInfo); - DELETED src/win32/directx/d3d9.d Index: src/win32/directx/d3d9.d ================================================================== --- src/win32/directx/d3d9.d +++ src/win32/directx/d3d9.d @@ -1,837 +0,0 @@ -/*==========================================================================; - * - * Copyright (C) Microsoft Corporation. All Rights Reserved. - * - * File: d3d9.h - * Content: Direct3D include file - * - ****************************************************************************/ -module win32.directx.d3d9; - -import win32.windows; -public import win32.directx.d3d9types; -public import win32.directx.d3d9caps; - -const DIRECT3D_VERSION = 0x0900; - -/**This identifier is passed to Direct3DCreate9 in order to ensure that an - * application was built against the correct header files. This number is - * incremented whenever a header (or other) change would require applications - * to be rebuilt. If the version doesn't match, Direct3DCreate9 will fail. - * (The number itself has no meaning.)*/ - -debug { - const D3D_SDK_VERSION = (32 | 0x80000000); - const D3D9b_SDK_VERSION = (31 | 0x80000000); -} -else { - const D3D_SDK_VERSION = 32; - const D3D9b_SDK_VERSION = 31; -} - -/* IID_IDirect3D9 */ -/* {81BDCBCA-64D4-426d-AE8D-AD0147F4275C} */ -extern (C) const GUID IID_IDirect3D9 = { 0x81bdcbca, 0x64d4, 0x426d, [0xae, 0x8d, 0xad, 0x1, 0x47, 0xf4, 0x27, 0x5c] }; - -/* IID_IDirect3DDevice9 */ -// {D0223B96-BF7A-43fd-92BD-A43B0D82B9EB} */ -extern (C) const GUID IID_IDirect3DDevice9 = { 0xd0223b96, 0xbf7a, 0x43fd, [0x92, 0xbd, 0xa4, 0x3b, 0xd, 0x82, 0xb9, 0xeb] }; - -/* IID_IDirect3DResource9 */ -// {05EEC05D-8F7D-4362-B999-D1BAF357C704} -extern (C) const GUID IID_IDirect3DResource9 = { 0x05eec05d, 0x8f7d, 0x4362, [0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x04] }; - -/* IID_IDirect3DBaseTexture9 */ -/* {580CA87E-1D3C-4d54-991D-B7D3E3C298CE} */ -extern (C) const GUID IID_IDirect3DBaseTexture9 = { 0x580ca87e, 0x1d3c, 0x4d54, [0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce] }; - -/* IID_IDirect3DTexture9 */ -/* {85C31227-3DE5-4f00-9B3A-F11AC38C18B5} */ -extern (C) const GUID IID_IDirect3DTexture9 = { 0x85c31227, 0x3de5, 0x4f00, [0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5] }; - -/* IID_IDirect3DCubeTexture9 */ -/* {FFF32F81-D953-473a-9223-93D652ABA93F} */ -extern (C) const GUID IID_IDirect3DCubeTexture9 = { 0xfff32f81, 0xd953, 0x473a, [0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f] }; - -/* IID_IDirect3DVolumeTexture9 */ -/* {2518526C-E789-4111-A7B9-47EF328D13E6} */ -extern (C) const GUID IID_IDirect3DVolumeTexture9 = { 0x2518526c, 0xe789, 0x4111, [0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6] }; - -/* IID_IDirect3DVertexBuffer9 */ -/* {B64BB1B5-FD70-4df6-BF91-19D0A12455E3} */ -extern (C) const GUID IID_IDirect3DVertexBuffer9 = { 0xb64bb1b5, 0xfd70, 0x4df6, [0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3] }; - -/* IID_IDirect3DIndexBuffer9 */ -/* {7C9DD65E-D3F7-4529-ACEE-785830ACDE35} */ -extern (C) const GUID IID_IDirect3DIndexBuffer9 = { 0x7c9dd65e, 0xd3f7, 0x4529, [0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35] }; - -/* IID_IDirect3DSurface9 */ -/* {0CFBAF3A-9FF6-429a-99B3-A2796AF8B89B} */ -extern (C) const GUID IID_IDirect3DSurface9 = { 0xcfbaf3a, 0x9ff6, 0x429a, [0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b] }; - -/* IID_IDirect3DVolume9 */ -/* {24F416E6-1F67-4aa7-B88E-D33F6F3128A1} */ -extern (C) const GUID IID_IDirect3DVolume9 = { 0x24f416e6, 0x1f67, 0x4aa7, [0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1] }; - -/* IID_IDirect3DSwapChain9 */ -/* {794950F2-ADFC-458a-905E-10A10B0B503B} */ -extern (C) const GUID IID_IDirect3DSwapChain9 = { 0x794950f2, 0xadfc, 0x458a, [0x90, 0x5e, 0x10, 0xa1, 0xb, 0xb, 0x50, 0x3b] }; - -/* IID_IDirect3DVertexDeclaration9 */ -/* {DD13C59C-36FA-4098-A8FB-C7ED39DC8546} */ -extern (C) const GUID IID_IDirect3DVertexDeclaration9 = { 0xdd13c59c, 0x36fa, 0x4098, [0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46] }; - -/* IID_IDirect3DVertexShader9 */ -/* {EFC5557E-6265-4613-8A94-43857889EB36} */ -extern (C) const GUID IID_IDirect3DVertexShader9 = { 0xefc5557e, 0x6265, 0x4613, [0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36] }; - -/* IID_IDirect3DPixelShader9 */ -/* {6D3BDBDC-5B02-4415-B852-CE5E8BCCB289} */ -extern (C) const GUID IID_IDirect3DPixelShader9 = { 0x6d3bdbdc, 0x5b02, 0x4415, [0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89] }; - -/* IID_IDirect3DStateBlock9 */ -/* {B07C4FE5-310D-4ba8-A23C-4F0F206F218B} */ -extern (C) const GUID IID_IDirect3DStateBlock9 = { 0xb07c4fe5, 0x310d, 0x4ba8, [0xa2, 0x3c, 0x4f, 0xf, 0x20, 0x6f, 0x21, 0x8b] }; - -/* IID_IDirect3DQuery9 */ -/* {d9771460-a695-4f26-bbd3-27b840b541cc} */ -extern (C) const GUID IID_IDirect3DQuery9 = { 0xd9771460, 0xa695, 0x4f26, [0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc] }; - - -/* IID_HelperName */ -/* {E4A36723-FDFE-4b22-B146-3C04C07F4CC8} */ -extern (C) const GUID IID_HelperName = { 0xe4a36723, 0xfdfe, 0x4b22, [0xb1, 0x46, 0x3c, 0x4, 0xc0, 0x7f, 0x4c, 0xc8] }; - -/* IID_IDirect3D9Ex */ -/* {02177241-69FC-400C-8FF1-93A44DF6861D} */ -extern (C) const GUID IID_IDirect3D9Ex = { 0x02177241, 0x69FC, 0x400C, [0x8F, 0xF1, 0x93, 0xA4, 0x4D, 0xF6, 0x86, 0x1D] }; - -/* IID_IDirect3DDevice9Ex */ -// {B18B10CE-2649-405a-870F-95F777D4313A} -extern (C) const GUID IID_IDirect3DDevice9Ex = { 0xb18b10ce, 0x2649, 0x405a, [0x87, 0xf, 0x95, 0xf7, 0x77, 0xd4, 0x31, 0x3a] }; - -/* IID_IDirect3DSwapChain9Ex */ -/* {91886CAF-1C3D-4d2e-A0AB-3E4C7D8D3303} */ -extern (C) const GUID IID_IDirect3DSwapChain9Ex = { 0x91886caf, 0x1c3d, 0x4d2e, [0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x03] }; - - - -extern (C): -/** - * DLL Function for creating a Direct3D9 object. This object supports - * enumeration and allows the creation of Direct3DDevice9 objects. - * Pass the value of the constant D3D_SDK_VERSION to this function, so - * that the run-time can validate that your application was compiled - * against the right headers. - */ - -extern (Windows) LPDIRECT3D9 Direct3DCreate9(UINT SDKVersion); - -/** - * Stubs for graphics profiling. - */ -extern (Windows) int D3DPERF_BeginEvent( D3DCOLOR col, LPCWSTR wszName ); -extern (Windows) int D3DPERF_EndEvent(); -extern (Windows) void D3DPERF_SetMarker( D3DCOLOR col, LPCWSTR wszName ); -extern (Windows) void D3DPERF_SetRegion( D3DCOLOR col, LPCWSTR wszName ); -extern (Windows) BOOL D3DPERF_QueryRepeatFrame(); - -extern (Windows) void D3DPERF_SetOptions( DWORD dwOptions ); -extern (Windows) DWORD D3DPERF_GetStatus(); - - -interface LPDIRECT3D9 : IUnknown -{ - HRESULT RegisterSoftwareDevice(void* pInitializeFunction); - UINT GetAdapterCount(); - HRESULT GetAdapterIdentifier( UINT Adapter,DWORD Flags,D3DADAPTER_IDENTIFIER9* pIdentifier); - UINT GetAdapterModeCount(UINT Adapter,D3DFORMAT Format); - HRESULT EnumAdapterModes( UINT Adapter,D3DFORMAT Format,UINT Mode,D3DDISPLAYMODE* pMode); - HRESULT GetAdapterDisplayMode( UINT Adapter,D3DDISPLAYMODE* pMode); - HRESULT CheckDeviceType( UINT Adapter,D3DDEVTYPE DevType,D3DFORMAT AdapterFormat,D3DFORMAT BackBufferFormat,BOOL bWindowed); - HRESULT CheckDeviceFormat( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT AdapterFormat,DWORD Usage,D3DRESOURCETYPE RType,D3DFORMAT CheckFormat); - HRESULT CheckDeviceMultiSampleType( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT SurfaceFormat,BOOL Windowed,D3DMULTISAMPLE_TYPE MultiSampleType,DWORD* pQualityLevels); - HRESULT CheckDepthStencilMatch( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT AdapterFormat,D3DFORMAT RenderTargetFormat,D3DFORMAT DepthStencilFormat); - HRESULT CheckDeviceFormatConversion( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT SourceFormat,D3DFORMAT TargetFormat); - HRESULT GetDeviceCaps( UINT Adapter,D3DDEVTYPE DeviceType,D3DCAPS9* pCaps); - HMONITOR GetAdapterMonitor(UINT Adapter); - HRESULT CreateDevice( UINT Adapter,D3DDEVTYPE DeviceType,HWND hFocusWindow,DWORD BehaviorFlags,D3DPRESENT_PARAMETERS* pPresentationParameters,LPDIRECT3DDEVICE9* ppReturnedDeviceInterface); -/* - debug { - LPCWSTR Version; - } -*/ -} -alias LPDIRECT3D9 IDirect3D9; - -interface LPDIRECT3DDEVICE9 : IUnknown -{ - HRESULT TestCooperativeLevel(); - UINT GetAvailableTextureMem(); - HRESULT EvictManagedResources(); - HRESULT GetDirect3D( LPDIRECT3D9* ppD3D9); - HRESULT GetDeviceCaps( D3DCAPS9* pCaps); - HRESULT GetDisplayMode( UINT iSwapChain,D3DDISPLAYMODE* pMode); - HRESULT GetCreationParameters( D3DDEVICE_CREATION_PARAMETERS *pParameters); - HRESULT SetCursorProperties( UINT XHotSpot,UINT YHotSpot,LPDIRECT3DSURFACE9 pCursorBitmap); - void SetCursorPosition(int X,int Y,DWORD Flags); - BOOL ShowCursor(BOOL bShow); - HRESULT CreateAdditionalSwapChain( D3DPRESENT_PARAMETERS* pPresentationParameters,LPDIRECT3DSWAPCHAIN9* pSwapChain); - HRESULT GetSwapChain( UINT iSwapChain,LPDIRECT3DSWAPCHAIN9* pSwapChain); - UINT GetNumberOfSwapChains(); - HRESULT Reset( D3DPRESENT_PARAMETERS* pPresentationParameters); - HRESULT Present(RECT* pSourceRect,RECT* pDestRect,HWND hDestWindowOverride, RGNDATA* pDirtyRegion); - HRESULT GetBackBuffer( UINT iSwapChain,UINT iBackBuffer,D3DBACKBUFFER_TYPE Type,LPDIRECT3DSURFACE9* ppBackBuffer); - HRESULT GetRasterStatus( UINT iSwapChain,D3DRASTER_STATUS* pRasterStatus); - HRESULT SetDialogBoxMode( BOOL bEnableDialogs); - void SetGammaRamp(UINT iSwapChain,DWORD Flags, D3DGAMMARAMP* pRamp); - void GetGammaRamp(UINT iSwapChain,D3DGAMMARAMP* pRamp); - HRESULT CreateTexture( UINT Width,UINT Height,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,LPDIRECT3DTEXTURE9* ppTexture,HANDLE* pSharedHandle); - HRESULT CreateVolumeTexture( UINT Width,UINT Height,UINT Depth,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,LPDIRECT3DVOLUMETEXTURE9* ppVolumeTexture,HANDLE* pSharedHandle); - HRESULT CreateCubeTexture( UINT EdgeLength,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,LPDIRECT3DCUBETEXTURE9* ppCubeTexture,HANDLE* pSharedHandle); - HRESULT CreateVertexBuffer( UINT Length,DWORD Usage,DWORD FVF,D3DPOOL Pool,LPDIRECT3DVERTEXBUFFER9* ppVertexBuffer,HANDLE* pSharedHandle); - HRESULT CreateIndexBuffer( UINT Length,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,LPDIRECT3DINDEXBUFFER9* ppIndexBuffer,HANDLE* pSharedHandle); - HRESULT CreateRenderTarget( UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Lockable,LPDIRECT3DSURFACE9* ppSurface,HANDLE* pSharedHandle); - HRESULT CreateDepthStencilSurface( UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Discard,LPDIRECT3DSURFACE9* ppSurface,HANDLE* pSharedHandle); - HRESULT UpdateSurface( LPDIRECT3DSURFACE9 pSourceSurface, RECT* pSourceRect,LPDIRECT3DSURFACE9 pDestinationSurface, POINT* pDestPoint); - HRESULT UpdateTexture( LPDIRECT3DBASETEXTURE9 pSourceTexture,LPDIRECT3DBASETEXTURE9 pDestinationTexture); - HRESULT GetRenderTargetData( LPDIRECT3DSURFACE9 pRenderTarget,LPDIRECT3DSURFACE9 pDestSurface); - HRESULT GetFrontBufferData( UINT iSwapChain,LPDIRECT3DSURFACE9 pDestSurface); - HRESULT StretchRect( LPDIRECT3DSURFACE9 pSourceSurface, RECT* pSourceRect,LPDIRECT3DSURFACE9 pDestSurface, RECT* pDestRect,D3DTEXTUREFILTERTYPE Filter); - HRESULT ColorFill( LPDIRECT3DSURFACE9 pSurface, RECT* pRect,D3DCOLOR color); - HRESULT CreateOffscreenPlainSurface( UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,LPDIRECT3DSURFACE9* ppSurface,HANDLE* pSharedHandle); - HRESULT SetRenderTarget( DWORD RenderTargetIndex,LPDIRECT3DSURFACE9 pRenderTarget); - HRESULT GetRenderTarget( DWORD RenderTargetIndex,LPDIRECT3DSURFACE9* ppRenderTarget); - HRESULT SetDepthStencilSurface( LPDIRECT3DSURFACE9 pNewZStencil); - HRESULT GetDepthStencilSurface( LPDIRECT3DSURFACE9* ppZStencilSurface); - HRESULT BeginScene(); - HRESULT EndScene(); - HRESULT Clear( DWORD Count, D3DRECT* pRects,DWORD Flags,D3DCOLOR Color,float Z,DWORD Stencil); - HRESULT SetTransform( D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix); - HRESULT GetTransform( D3DTRANSFORMSTATETYPE State,D3DMATRIX* pMatrix); - HRESULT MultiplyTransform( D3DTRANSFORMSTATETYPE, D3DMATRIX*); - HRESULT SetViewport( D3DVIEWPORT9* pViewport); - HRESULT GetViewport( D3DVIEWPORT9* pViewport); - HRESULT SetMaterial( D3DMATERIAL9* pMaterial); - HRESULT GetMaterial( D3DMATERIAL9* pMaterial); - HRESULT SetLight( DWORD Index, D3DLIGHT9*); - HRESULT GetLight( DWORD Index,D3DLIGHT9*); - HRESULT LightEnable( DWORD Index,BOOL Enable); - HRESULT GetLightEnable( DWORD Index,BOOL* pEnable); - HRESULT SetClipPlane( DWORD Index, float* pPlane); - HRESULT GetClipPlane( DWORD Index,float* pPlane); - HRESULT SetRenderState( D3DRENDERSTATETYPE State,DWORD Value); - HRESULT GetRenderState( D3DRENDERSTATETYPE State,DWORD* pValue); - HRESULT CreateStateBlock( D3DSTATEBLOCKTYPE Type,LPDIRECT3DSTATEBLOCK9* ppSB); - HRESULT BeginStateBlock(); - HRESULT EndStateBlock( LPDIRECT3DSTATEBLOCK9* ppSB); - HRESULT SetClipStatus( D3DCLIPSTATUS9* pClipStatus); - HRESULT GetClipStatus( D3DCLIPSTATUS9* pClipStatus); - HRESULT GetTexture( DWORD Stage,LPDIRECT3DBASETEXTURE9* ppTexture); - HRESULT SetTexture( DWORD Stage,LPDIRECT3DBASETEXTURE9 pTexture); - HRESULT GetTextureStageState( DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD* pValue); - HRESULT SetTextureStageState( DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD Value); - HRESULT GetSamplerState( DWORD Sampler,D3DSAMPLERSTATETYPE Type,DWORD* pValue); - HRESULT SetSamplerState( DWORD Sampler,D3DSAMPLERSTATETYPE Type,DWORD Value); - HRESULT ValidateDevice( DWORD* pNumPasses); - HRESULT SetPaletteEntries( UINT PaletteNumber, PALETTEENTRY* pEntries); - HRESULT GetPaletteEntries( UINT PaletteNumber,PALETTEENTRY* pEntries); - HRESULT SetCurrentTexturePalette( UINT PaletteNumber); - HRESULT GetCurrentTexturePalette( UINT *PaletteNumber); - HRESULT SetScissorRect( RECT* pRect); - HRESULT GetScissorRect( RECT* pRect); - HRESULT SetSoftwareVertexProcessing( BOOL bSoftware); - BOOL GetSoftwareVertexProcessing(); - HRESULT SetNPatchMode( float nSegments); - float GetNPatchMode(); - HRESULT DrawPrimitive( D3DPRIMITIVETYPE PrimitiveType,UINT StartVertex,UINT PrimitiveCount); - HRESULT DrawIndexedPrimitive( D3DPRIMITIVETYPE,INT BaseVertexIndex,UINT MinVertexIndex,UINT NumVertices,UINT startIndex,UINT primCount); - HRESULT DrawPrimitiveUP( D3DPRIMITIVETYPE PrimitiveType,UINT PrimitiveCount, void* pVertexStreamZeroData,UINT VertexStreamZeroStride); - HRESULT DrawIndexedPrimitiveUP( D3DPRIMITIVETYPE PrimitiveType,UINT MinVertexIndex,UINT NumVertices,UINT PrimitiveCount, void* pIndexData,D3DFORMAT IndexDataFormat, void* pVertexStreamZeroData,UINT VertexStreamZeroStride); - HRESULT ProcessVertices( UINT SrcStartIndex,UINT DestIndex,UINT VertexCount,LPDIRECT3DVERTEXBUFFER9 pDestBuffer,LPDIRECT3DVERTEXDECLARATION9 pVertexDecl,DWORD Flags); - HRESULT CreateVertexDeclaration( D3DVERTEXELEMENT9* pVertexElements,LPDIRECT3DVERTEXDECLARATION9* ppDecl); - HRESULT SetVertexDeclaration(LPDIRECT3DVERTEXDECLARATION9 pDecl); - HRESULT GetVertexDeclaration(LPDIRECT3DVERTEXDECLARATION9* ppDecl); - HRESULT SetFVF( DWORD FVF); - HRESULT GetFVF( DWORD* pFVF); - HRESULT CreateVertexShader( DWORD* pFunction,LPDIRECT3DVERTEXSHADER9* ppShader); - HRESULT SetVertexShader( LPDIRECT3DVERTEXSHADER9 pShader); - HRESULT GetVertexShader( LPDIRECT3DVERTEXSHADER9* ppShader); - HRESULT SetVertexShaderConstantF( UINT StartRegister, float* pConstantData,UINT Vector4fCount); - HRESULT GetVertexShaderConstantF( UINT StartRegister,float* pConstantData,UINT Vector4fCount); - HRESULT SetVertexShaderConstantI( UINT StartRegister, int* pConstantData,UINT Vector4iCount); - HRESULT GetVertexShaderConstantI( UINT StartRegister,int* pConstantData,UINT Vector4iCount); - HRESULT SetVertexShaderConstantB( UINT StartRegister, BOOL* pConstantData,UINT BoolCount); - HRESULT GetVertexShaderConstantB( UINT StartRegister,BOOL* pConstantData,UINT BoolCount); - HRESULT SetStreamSource( UINT StreamNumber,LPDIRECT3DVERTEXBUFFER9 pStreamData,UINT OffsetInBytes,UINT Stride); - HRESULT GetStreamSource( UINT StreamNumber,LPDIRECT3DVERTEXBUFFER9* ppStreamData,UINT* pOffsetInBytes,UINT* pStride); - HRESULT SetStreamSourceFreq( UINT StreamNumber,UINT Setting); - HRESULT GetStreamSourceFreq( UINT StreamNumber,UINT* pSetting); - HRESULT SetIndices( LPDIRECT3DINDEXBUFFER9 pIndexData); - HRESULT GetIndices( LPDIRECT3DINDEXBUFFER9* ppIndexData); - HRESULT CreatePixelShader( DWORD* pFunction,LPDIRECT3DPIXELSHADER9* ppShader); - HRESULT SetPixelShader(LPDIRECT3DPIXELSHADER9 pShader); - HRESULT GetPixelShader(LPDIRECT3DPIXELSHADER9* ppShader); - HRESULT SetPixelShaderConstantF( UINT StartRegister, float* pConstantData,UINT Vector4fCount); - HRESULT GetPixelShaderConstantF( UINT StartRegister,float* pConstantData,UINT Vector4fCount); - HRESULT SetPixelShaderConstantI( UINT StartRegister, int* pConstantData,UINT Vector4iCount); - HRESULT GetPixelShaderConstantI( UINT StartRegister,int* pConstantData,UINT Vector4iCount); - HRESULT SetPixelShaderConstantB( UINT StartRegister, BOOL* pConstantData,UINT BoolCount); - HRESULT GetPixelShaderConstantB( UINT StartRegister,BOOL* pConstantData,UINT BoolCount); - HRESULT DrawRectPatch( UINT Handle, float* pNumSegs, D3DRECTPATCH_INFO* pRectPatchInfo); - HRESULT DrawTriPatch( UINT Handle, float* pNumSegs, D3DTRIPATCH_INFO* pTriPatchInfo); - HRESULT DeletePatch( UINT Handle); - HRESULT CreateQuery( D3DQUERYTYPE Type,LPDIRECT3DQUERY9* ppQuery); -/* - debug { - D3DDEVICE_CREATION_PARAMETERS CreationParameters; - D3DPRESENT_PARAMETERS PresentParameters; - D3DDISPLAYMODE DisplayMode; - D3DCAPS9 Caps; - - UINT AvailableTextureMem; - UINT SwapChains; - UINT Textures; - UINT VertexBuffers; - UINT IndexBuffers; - UINT VertexShaders; - UINT PixelShaders; - - D3DVIEWPORT9 Viewport; - D3DMATRIX ProjectionMatrix; - D3DMATRIX ViewMatrix; - D3DMATRIX WorldMatrix; - D3DMATRIX[8] TextureMatrices; - - DWORD FVF; - UINT VertexSize; - DWORD VertexShaderVersion; - DWORD PixelShaderVersion; - BOOL SoftwareVertexProcessing; - - D3DMATERIAL9 Material; - D3DLIGHT9[16] Lights; - BOOL[16] LightsEnabled; - - D3DGAMMARAMP GammaRamp; - RECT ScissorRect; - BOOL DialogBoxMode; - } -*/ -} - -alias LPDIRECT3DDEVICE9 IDirect3DDevice9; - - -interface LPDIRECT3DSTATEBLOCK9 : IUnknown -{ - HRESULT GetDevice(LPDIRECT3DDEVICE9* ppDevice); - HRESULT Capture(); - HRESULT Apply(); -/* - debug { - LPCWSTR CreationCallStack; - } -*/ -} - -alias LPDIRECT3DSTATEBLOCK9 IDirect3DStateBlock9; - -interface LPDIRECT3DSWAPCHAIN9 : IUnknown -{ - HRESULT Present( RECT* pSourceRect, RECT* pDestRect,HWND hDestWindowOverride, RGNDATA* pDirtyRegion,DWORD dwFlags); - HRESULT GetFrontBufferData( LPDIRECT3DSURFACE9 pDestSurface); - HRESULT GetBackBuffer( UINT iBackBuffer,D3DBACKBUFFER_TYPE Type,LPDIRECT3DSURFACE9* ppBackBuffer); - HRESULT GetRasterStatus( D3DRASTER_STATUS* pRasterStatus); - HRESULT GetDisplayMode( D3DDISPLAYMODE* pMode); - HRESULT GetDevice( LPDIRECT3DDEVICE9 * ppDevice); - HRESULT GetPresentParameters( D3DPRESENT_PARAMETERS* pPresentationParameters); -/* - debug { - D3DPRESENT_PARAMETERS PresentParameters; - D3DDISPLAYMODE DisplayMode; - LPCWSTR CreationCallStack; - } -*/ -} - -alias LPDIRECT3DSWAPCHAIN9 IDirect3DSwapChain9; - -interface LPDIRECT3DRESOURCE9 : IUnknown -{ - HRESULT GetDevice( LPDIRECT3DDEVICE9* ppDevice); - HRESULT SetPrivateData( REFGUID refguid, void* pData,DWORD SizeOfData,DWORD Flags); - HRESULT GetPrivateData( REFGUID refguid,void* pData,DWORD* pSizeOfData); - HRESULT FreePrivateData( REFGUID refguid); - DWORD SetPriority(DWORD PriorityNew); - DWORD GetPriority(); - void PreLoad(); - D3DRESOURCETYPE GetType(); -} - -alias LPDIRECT3DRESOURCE9 IDirect3DResource9; - -interface LPDIRECT3DVERTEXDECLARATION9 : IUnknown -{ - HRESULT GetDevice( LPDIRECT3DDEVICE9* ppDevice); - HRESULT GetDeclaration( D3DVERTEXELEMENT9* pElement,UINT* pNumElements); -/* - debug { - LPCWSTR CreationCallStack; - } -*/ -} - -alias LPDIRECT3DVERTEXDECLARATION9 IDirect3DVertexDeclaration9; - -interface LPDIRECT3DVERTEXSHADER9 : IUnknown -{ - HRESULT GetDevice( LPDIRECT3DDEVICE9 * ppDevice); - HRESULT GetFunction( void*,UINT* pSizeOfData); -/* - debug { - DWORD Version; - LPCWSTR CreationCallStack; - } -*/ -} - -alias LPDIRECT3DVERTEXSHADER9 IDirect3DVertexShader9; - -interface LPDIRECT3DPIXELSHADER9 : IUnknown -{ - HRESULT GetDevice( LPDIRECT3DDEVICE9 * ppDevice); - HRESULT GetFunction( void*,UINT* pSizeOfData); -/* - debug { - DWORD Version; - LPCWSTR CreationCallStack; - } -*/ -} - -alias LPDIRECT3DPIXELSHADER9 IDirect3DPixelShader9; - -interface LPDIRECT3DBASETEXTURE9 : LPDIRECT3DRESOURCE9 -{ - DWORD SetLOD(DWORD LODNew); - DWORD GetLOD(); - DWORD GetLevelCount(); - HRESULT SetAutoGenFilterType( D3DTEXTUREFILTERTYPE FilterType); - D3DTEXTUREFILTERTYPE GetAutoGenFilterType(); - void GenerateMipSubLevels(); -} - -alias LPDIRECT3DBASETEXTURE9 IDirect3DBaseTexture9; - -interface LPDIRECT3DTEXTURE9 : LPDIRECT3DBASETEXTURE9 -{ - HRESULT GetLevelDesc( UINT Level,D3DSURFACE_DESC *pDesc); - HRESULT GetSurfaceLevel( UINT Level,LPDIRECT3DSURFACE9* ppSurfaceLevel); - HRESULT LockRect( UINT Level,D3DLOCKED_RECT* pLockedRect,RECT* pRect,DWORD Flags); - HRESULT UnlockRect( UINT Level); - HRESULT AddDirtyRect(RECT* pDirtyRect); -/* - debug { - LPCWSTR Name; - UINT Width; - UINT Height; - UINT Levels; - DWORD Usage; - D3DFORMAT Format; - D3DPOOL Pool; - DWORD Priority; - DWORD LOD; - D3DTEXTUREFILTERTYPE FilterType; - UINT LockCount; - LPCWSTR CreationCallStack; - } -*/ -} - -alias LPDIRECT3DTEXTURE9 IDirect3DTexture9; - -interface LPDIRECT3DVOLUMETEXTURE9 : LPDIRECT3DBASETEXTURE9 -{ - HRESULT GetLevelDesc( UINT Level,D3DVOLUME_DESC *pDesc); - HRESULT GetVolumeLevel( UINT Level,LPDIRECT3DVOLUME9* ppVolumeLevel); - HRESULT LockBox( UINT Level,D3DLOCKED_BOX* pLockedVolume, D3DBOX* pBox,DWORD Flags); - HRESULT UnlockBox( UINT Level); - HRESULT AddDirtyBox( D3DBOX* pDirtyBox); -/* - debug { - LPCWSTR Name; - UINT Width; - UINT Height; - UINT Depth; - UINT Levels; - DWORD Usage; - D3DFORMAT Format; - D3DPOOL Pool; - DWORD Priority; - DWORD LOD; - D3DTEXTUREFILTERTYPE FilterType; - UINT LockCount; - LPCWSTR CreationCallStack; - } -*/ -} - -alias LPDIRECT3DVOLUMETEXTURE9 IDirect3DVolumeTexture9; - -interface LPDIRECT3DCUBETEXTURE9 : LPDIRECT3DBASETEXTURE9 -{ - HRESULT GetLevelDesc( UINT Level,D3DSURFACE_DESC *pDesc); - HRESULT GetCubeMapSurface( D3DCUBEMAP_FACES FaceType,UINT Level,LPDIRECT3DSURFACE9* ppCubeMapSurface); - HRESULT LockRect( D3DCUBEMAP_FACES FaceType,UINT Level,D3DLOCKED_RECT* pLockedRect, RECT* pRect,DWORD Flags); - HRESULT UnlockRect( D3DCUBEMAP_FACES FaceType,UINT Level); - HRESULT AddDirtyRect( D3DCUBEMAP_FACES FaceType, RECT* pDirtyRect); -/* - debug { - LPCWSTR Name; - UINT Width; - UINT Height; - UINT Levels; - DWORD Usage; - D3DFORMAT Format; - D3DPOOL Pool; - DWORD Priority; - DWORD LOD; - D3DTEXTUREFILTERTYPE FilterType; - UINT LockCount; - LPCWSTR CreationCallStack; - } -*/ -} - -alias LPDIRECT3DCUBETEXTURE9 IDirect3DCubeTexture9; - -interface LPDIRECT3DVERTEXBUFFER9 : LPDIRECT3DRESOURCE9 -{ - HRESULT Lock( UINT OffsetToLock,UINT SizeToLock,void** ppbData,DWORD Flags); - HRESULT Unlock(); - HRESULT GetDesc( D3DVERTEXBUFFER_DESC *pDesc); -/* - debug { - LPCWSTR Name; - UINT Length; - DWORD Usage; - DWORD FVF; - D3DPOOL Pool; - DWORD Priority; - UINT LockCount; - LPCWSTR CreationCallStack; - } -*/ -} - -alias LPDIRECT3DVERTEXBUFFER9 IDirect3DVertexBuffer9; - -interface LPDIRECT3DINDEXBUFFER9 : LPDIRECT3DRESOURCE9 -{ - HRESULT Lock( UINT OffsetToLock,UINT SizeToLock,void** ppbData,DWORD Flags); - HRESULT Unlock(); - HRESULT GetDesc( D3DINDEXBUFFER_DESC *pDesc); -/* - debug { - LPCWSTR Name; - UINT Length; - DWORD Usage; - D3DFORMAT Format; - D3DPOOL Pool; - DWORD Priority; - UINT LockCount; - LPCWSTR CreationCallStack; - } -*/ -} - -alias LPDIRECT3DINDEXBUFFER9 IDirect3DIndexBuffer9; - -interface LPDIRECT3DSURFACE9 : LPDIRECT3DRESOURCE9 -{ - HRESULT GetContainer( REFIID riid,void** ppContainer); - HRESULT GetDesc( D3DSURFACE_DESC *pDesc); - HRESULT LockRect( D3DLOCKED_RECT* pLockedRect, RECT* pRect,DWORD Flags); - HRESULT UnlockRect(); - HRESULT GetDC( HDC *phdc); - HRESULT ReleaseDC( HDC hdc); -/* - debug { - LPCWSTR Name; - UINT Width; - UINT Height; - DWORD Usage; - D3DFORMAT Format; - D3DPOOL Pool; - D3DMULTISAMPLE_TYPE MultiSampleType; - DWORD MultiSampleQuality; - DWORD Priority; - UINT LockCount; - UINT DCCount; - LPCWSTR CreationCallStack; - } -*/ -} - -alias LPDIRECT3DSURFACE9 IDirect3DSurface9; - -interface LPDIRECT3DVOLUME9 : IUnknown -{ - HRESULT GetDevice( LPDIRECT3DDEVICE9 * ppDevice); - HRESULT SetPrivateData( REFGUID refguid, void* pData,DWORD SizeOfData,DWORD Flags); - HRESULT GetPrivateData( REFGUID refguid,void* pData,DWORD* pSizeOfData); - HRESULT FreePrivateData( REFGUID refguid); - HRESULT GetContainer( REFIID riid,void** ppContainer); - HRESULT GetDesc( D3DVOLUME_DESC *pDesc); - HRESULT LockBox( D3DLOCKED_BOX * pLockedVolume, D3DBOX* pBox,DWORD Flags); - HRESULT UnlockBox(); -/* - debug { - LPCWSTR Name; - UINT Width; - UINT Height; - UINT Depth; - DWORD Usage; - D3DFORMAT Format; - D3DPOOL Pool; - UINT LockCount; - LPCWSTR CreationCallStack; - } -*/ -} - -alias LPDIRECT3DVOLUME9 IDirect3DVolume9; - -interface LPDIRECT3DQUERY9 : IUnknown -{ - HRESULT GetDevice( LPDIRECT3DDEVICE9* ppDevice); - D3DQUERYTYPE GetType(); - DWORD GetDataSize(); - HRESULT Issue( DWORD dwIssueFlags); - HRESULT GetData( void* pData,DWORD dwSize,DWORD dwGetDataFlags); -/* - debug { - D3DQUERYTYPE Type; - DWORD DataSize; - LPCWSTR CreationCallStack; - } -*/ -} - -alias LPDIRECT3DQUERY9 IDirect3DQuery9; - -/**************************************************************************** - * Flags for SetPrivateData method on all D3D9 interfaces - * - * The passed pointer is an IUnknown ptr. The SizeOfData argument to SetPrivateData - * must be set to sizeof(IUnknown*). Direct3D will call AddRef through this - * pointer and Release when the private data is destroyed. The data will be - * destroyed when another SetPrivateData with the same GUID is set, when - * FreePrivateData is called, or when the D3D9 object is freed. - ****************************************************************************/ -const D3DSPD_IUNKNOWN = 0x00000001L; - -/**************************************************************************** - * - * Flags for IDirect3D9::CreateDevice's BehaviorFlags - * - ****************************************************************************/ - -const D3DCREATE_FPU_PRESERVE = 0x00000002L; -const D3DCREATE_MULTITHREADED = 0x00000004L; - -const D3DCREATE_PUREDEVICE = 0x00000010L; -const D3DCREATE_SOFTWARE_VERTEXPROCESSING = 0x00000020L; -const D3DCREATE_HARDWARE_VERTEXPROCESSING = 0x00000040L; -const D3DCREATE_MIXED_VERTEXPROCESSING = 0x00000080L; - -const D3DCREATE_DISABLE_DRIVER_MANAGEMENT = 0x00000100L; -const D3DCREATE_ADAPTERGROUP_DEVICE = 0x00000200L; -const D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX = 0x00000400L; - -// This flag causes the D3D runtime not to alter the focus -// window in any way. Use with caution- the burden of supporting -// focus management events (alt-tab, etc.) falls on the -// application, and appropriate responses (switching display -// mode, etc.) should be coded. -const D3DCREATE_NOWINDOWCHANGES = 0x00000800L; - -// Disable multithreading for software vertex processing -const D3DCREATE_DISABLE_PSGP_THREADING = 0x00002000L; -// This flag enables present statistics on device. -const D3DCREATE_ENABLE_PRESENTSTATS = 0x00004000L; -// This flag disables printscreen support in the runtime for this device -const D3DCREATE_DISABLE_PRINTSCREEN = 0x00008000L; - -const D3DCREATE_SCREENSAVER = 0x10000000L; - - -/**************************************************************************** - * - * Parameter for IDirect3D9::CreateDevice's Adapter argument - * - ****************************************************************************/ - -const D3DADAPTER_DEFAULT = 0; - -/**************************************************************************** - * - * Flags for IDirect3D9::EnumAdapters - * - ****************************************************************************/ - -/* - * The D3DENUM_WHQL_LEVEL value has been retired for 9Ex and future versions, - * but it needs to be defined here for compatibility with DX9 and earlier versions. - * See the DirectX SDK for sample code on discovering driver signatures. - */ -const D3DENUM_WHQL_LEVEL = 0x00000002L; - -/* NO_DRIVERVERSION will not fill out the DriverVersion field, nor will the - DriverVersion be incorporated into the DeviceIdentifier GUID. WINNT only */ -const D3DENUM_NO_DRIVERVERSION = 0x00000004L; - - -/**************************************************************************** - * - * Maximum number of back-buffers supported in DX9 - * - ****************************************************************************/ - -const D3DPRESENT_BACK_BUFFERS_MAX = 3L; - -/**************************************************************************** - * - * Maximum number of back-buffers supported when apps use CreateDeviceEx - * - ****************************************************************************/ -const D3DPRESENT_BACK_BUFFERS_MAX_EX = 30L; - -/**************************************************************************** - * - * Flags for IDirect3DDevice9::SetGammaRamp - * - ****************************************************************************/ - -const D3DSGR_NO_CALIBRATION = 0x00000000L; -const D3DSGR_CALIBRATE = 0x00000001L; - -/**************************************************************************** - * - * Flags for IDirect3DDevice9::SetCursorPosition - * - ****************************************************************************/ - -const D3DCURSOR_IMMEDIATE_UPDATE = 0x00000001L; - -/**************************************************************************** - * - * Flags for IDirect3DSwapChain9::Present - * - ****************************************************************************/ - -const D3DPRESENT_DONOTWAIT = 0x00000001L; -const D3DPRESENT_LINEAR_CONTENT = 0x00000002L; -const D3DPRESENT_DONOTFLIP = 0x00000004L; -const D3DPRESENT_FLIPRESTART = 0x00000008L; -const D3DPRESENT_VIDEO_RESTRICT_TO_MONITOR = 0x00000010L; - -/**************************************************************************** - * - * Flags for DrawPrimitive/DrawIndexedPrimitive - * Also valid for Begin/BeginIndexed - * Also valid for VertexBuffer::CreateVertexBuffer - ****************************************************************************/ - - -/* - * DirectDraw error codes - */ -const _FACD3D = 0x876; -HRESULT MAKE_D3DHRESULT(T)(T code) { return MAKE_HRESULT( 1, _FACD3D, code ); } -HRESULT MAKE_D3DSTATUS(T)(T code) { return MAKE_HRESULT( 0, _FACD3D, code ); } - -/* - * Direct3D Errors - */ -const HRESULT D3D_OK = S_OK; - -const HRESULT D3DERR_WRONGTEXTUREFORMAT = MAKE_D3DHRESULT(2072); -const HRESULT D3DERR_UNSUPPORTEDCOLOROPERATION = MAKE_D3DHRESULT(2073); -const HRESULT D3DERR_UNSUPPORTEDCOLORARG = MAKE_D3DHRESULT(2074); -const HRESULT D3DERR_UNSUPPORTEDALPHAOPERATION = MAKE_D3DHRESULT(2075); -const HRESULT D3DERR_UNSUPPORTEDALPHAARG = MAKE_D3DHRESULT(2076); -const HRESULT D3DERR_TOOMANYOPERATIONS = MAKE_D3DHRESULT(2077); -const HRESULT D3DERR_CONFLICTINGTEXTUREFILTER = MAKE_D3DHRESULT(2078); -const HRESULT D3DERR_UNSUPPORTEDFACTORVALUE = MAKE_D3DHRESULT(2079); -const HRESULT D3DERR_CONFLICTINGRENDERSTATE = MAKE_D3DHRESULT(2081); -const HRESULT D3DERR_UNSUPPORTEDTEXTUREFILTER = MAKE_D3DHRESULT(2082); -const HRESULT D3DERR_CONFLICTINGTEXTUREPALETTE = MAKE_D3DHRESULT(2086); -const HRESULT D3DERR_DRIVERINTERNALERROR = MAKE_D3DHRESULT(2087); - -const HRESULT D3DERR_NOTFOUND = MAKE_D3DHRESULT(2150); -const HRESULT D3DERR_MOREDATA = MAKE_D3DHRESULT(2151); -const HRESULT D3DERR_DEVICELOST = MAKE_D3DHRESULT(2152); -const HRESULT D3DERR_DEVICENOTRESET = MAKE_D3DHRESULT(2153); -const HRESULT D3DERR_NOTAVAILABLE = MAKE_D3DHRESULT(2154); -const HRESULT D3DERR_OUTOFVIDEOMEMORY = MAKE_D3DHRESULT(380); -const HRESULT D3DERR_INVALIDDEVICE = MAKE_D3DHRESULT(2155); -const HRESULT D3DERR_INVALIDCALL = MAKE_D3DHRESULT(2156); -const HRESULT D3DERR_DRIVERINVALIDCALL = MAKE_D3DHRESULT(2157); -const HRESULT D3DERR_WASSTILLDRAWING = MAKE_D3DHRESULT(540); -const HRESULT D3DOK_NOAUTOGEN = MAKE_D3DSTATUS(2159); -const HRESULT D3DERR_DEVICEREMOVED = MAKE_D3DHRESULT(2160); -const HRESULT S_NOT_RESIDENT = MAKE_D3DSTATUS(2165); -const HRESULT S_RESIDENT_IN_SHARED_MEMORY = MAKE_D3DSTATUS(2166); -const HRESULT S_PRESENT_MODE_CHANGED = MAKE_D3DSTATUS(2167); -const HRESULT S_PRESENT_OCCLUDED = MAKE_D3DSTATUS(2168); -const HRESULT D3DERR_DEVICEHUNG = MAKE_D3DHRESULT(2164); - - -/********************* -/* D3D9Ex interfaces -/*********************/ - -extern (Windows) HRESULT Direct3DCreate9Ex(UINT SDKVersion, LPDIRECT3D9EX*); - -interface LPDIRECT3D9EX : LPDIRECT3D9 -{ - UINT GetAdapterModeCountEx(UINT Adapter, D3DDISPLAYMODEFILTER* pFilter ); - HRESULT EnumAdapterModesEx( UINT Adapter, D3DDISPLAYMODEFILTER* pFilter,UINT Mode,D3DDISPLAYMODEEX* pMode); - HRESULT GetAdapterDisplayModeEx( UINT Adapter,D3DDISPLAYMODEEX* pMode,D3DDISPLAYROTATION* pRotation); - HRESULT CreateDeviceEx( UINT Adapter,D3DDEVTYPE DeviceType,HWND hFocusWindow,DWORD BehaviorFlags,D3DPRESENT_PARAMETERS* pPresentationParameters,D3DDISPLAYMODEEX* pFullscreenDisplayMode,LPDIRECT3DDEVICE9EX* ppReturnedDeviceInterface); - HRESULT GetAdapterLUID( UINT Adapter,LUID * pLUID); -} - -alias LPDIRECT3D9EX IDirect3D9Ex; - -interface LPDIRECT3DDEVICE9EX : LPDIRECT3DDEVICE9 -{ - HRESULT SetConvolutionMonoKernel( UINT width,UINT height,float* rows,float* columns); - HRESULT ComposeRects( LPDIRECT3DSURFACE9 pSrc,LPDIRECT3DSURFACE9 pDst,LPDIRECT3DVERTEXBUFFER9 pSrcRectDescs,UINT NumRects,LPDIRECT3DVERTEXBUFFER9 pDstRectDescs,D3DCOMPOSERECTSOP Operation,int Xoffset,int Yoffset); - HRESULT PresentEx( RECT* pSourceRect, RECT* pDestRect,HWND hDestWindowOverride, RGNDATA* pDirtyRegion,DWORD dwFlags); - HRESULT GetGPUThreadPriority( INT* pPriority); - HRESULT SetGPUThreadPriority( INT Priority); - HRESULT WaitForVBlank( UINT iSwapChain); - HRESULT CheckResourceResidency( LPDIRECT3DRESOURCE9* pResourceArray,UINT32 NumResources); - HRESULT SetMaximumFrameLatency( UINT MaxLatency); - HRESULT GetMaximumFrameLatency( UINT* pMaxLatency); - HRESULT CheckDeviceState( HWND hDestinationWindow); - HRESULT CreateRenderTargetEx( UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Lockable,LPDIRECT3DSURFACE9* ppSurface,HANDLE* pSharedHandle,DWORD Usage); - HRESULT CreateOffscreenPlainSurfaceEx( UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,LPDIRECT3DSURFACE9* ppSurface,HANDLE* pSharedHandle,DWORD Usage); - HRESULT CreateDepthStencilSurfaceEx( UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Discard,LPDIRECT3DSURFACE9* ppSurface,HANDLE* pSharedHandle,DWORD Usage); - HRESULT ResetEx( D3DPRESENT_PARAMETERS* pPresentationParameters,D3DDISPLAYMODEEX *pFullscreenDisplayMode); - HRESULT GetDisplayModeEx( UINT iSwapChain,D3DDISPLAYMODEEX* pMode,D3DDISPLAYROTATION* pRotation); -} - -alias LPDIRECT3DDEVICE9EX IDirect3DDevice9Ex; - -interface LPDIRECT3DSWAPCHAIN9EX : LPDIRECT3DSWAPCHAIN9 -{ - HRESULT GetLastPresentCount( UINT* pLastPresentCount); - HRESULT GetPresentStats( D3DPRESENTSTATS* pPresentationStatistics); - HRESULT GetDisplayModeEx( D3DDISPLAYMODEEX* pMode,D3DDISPLAYROTATION* pRotation); -} - -alias LPDIRECT3DSWAPCHAIN9EX IDirect3DSwapChain9Ex; DELETED src/win32/directx/d3d9.def Index: src/win32/directx/d3d9.def ================================================================== --- src/win32/directx/d3d9.def +++ src/win32/directx/d3d9.def @@ -1,2 +0,0 @@ -IMPORTS -_Direct3DCreate9@4 = d3d9.Direct3DCreate9 DELETED src/win32/directx/d3d9caps.d Index: src/win32/directx/d3d9caps.d ================================================================== --- src/win32/directx/d3d9caps.d +++ src/win32/directx/d3d9caps.d @@ -1,472 +0,0 @@ -/*==========================================================================; - * - * Copyright (C) Microsoft Corporation. All Rights Reserved. - * - * File: d3d9caps.h - * Content: Direct3D capabilities include file - * - ***************************************************************************/ - -module win32.directx.d3d9caps; - -private import win32.windows, - win32.directx.d3d9types; - -align(4): - -struct D3DVSHADERCAPS2_0 -{ - DWORD Caps; - INT DynamicFlowControlDepth; - INT NumTemps; - INT StaticFlowControlDepth; -} - -const D3DVS20CAPS_PREDICATION = (1<<0); - -const D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH = 24; -const D3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH = 0; -const D3DVS20_MAX_NUMTEMPS = 32; -const D3DVS20_MIN_NUMTEMPS = 12; -const D3DVS20_MAX_STATICFLOWCONTROLDEPTH = 4; -const D3DVS20_MIN_STATICFLOWCONTROLDEPTH = 1; - -struct D3DPSHADERCAPS2_0 -{ - DWORD Caps; - INT DynamicFlowControlDepth; - INT NumTemps; - INT StaticFlowControlDepth; - INT NumInstructionSlots; -} - -const D3DPS20CAPS_ARBITRARYSWIZZLE = (1<<0); -const D3DPS20CAPS_GRADIENTINSTRUCTIONS = (1<<1); -const D3DPS20CAPS_PREDICATION = (1<<2); -const D3DPS20CAPS_NODEPENDENTREADLIMIT = (1<<3); -const D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT = (1<<4); - -const D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH = 24; -const D3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH = 0; -const D3DPS20_MAX_NUMTEMPS = 32; -const D3DPS20_MIN_NUMTEMPS = 12; -const D3DPS20_MAX_STATICFLOWCONTROLDEPTH = 4; -const D3DPS20_MIN_STATICFLOWCONTROLDEPTH = 0; -const D3DPS20_MAX_NUMINSTRUCTIONSLOTS = 512; -const D3DPS20_MIN_NUMINSTRUCTIONSLOTS = 96; - -const D3DMIN30SHADERINSTRUCTIONS = 512; -const D3DMAX30SHADERINSTRUCTIONS = 32768; - -struct D3DCAPS9 -{ - /* Device Info */ - D3DDEVTYPE DeviceType; - UINT AdapterOrdinal; - - /* Caps from DX7 Draw */ - DWORD Caps; - DWORD Caps2; - DWORD Caps3; - DWORD PresentationIntervals; - - /* Cursor Caps */ - DWORD CursorCaps; - - /* 3D Device Caps */ - DWORD DevCaps; - - DWORD PrimitiveMiscCaps; - DWORD RasterCaps; - DWORD ZCmpCaps; - DWORD SrcBlendCaps; - DWORD DestBlendCaps; - DWORD AlphaCmpCaps; - DWORD ShadeCaps; - DWORD TextureCaps; - DWORD TextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DTexture9's - DWORD CubeTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DCubeTexture9's - DWORD VolumeTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DVolumeTexture9's - DWORD TextureAddressCaps; // D3DPTADDRESSCAPS for IDirect3DTexture9's - DWORD VolumeTextureAddressCaps; // D3DPTADDRESSCAPS for IDirect3DVolumeTexture9's - - DWORD LineCaps; // D3DLINECAPS - - DWORD MaxTextureWidth, MaxTextureHeight; - DWORD MaxVolumeExtent; - - DWORD MaxTextureRepeat; - DWORD MaxTextureAspectRatio; - DWORD MaxAnisotropy; - float MaxVertexW; - - float GuardBandLeft; - float GuardBandTop; - float GuardBandRight; - float GuardBandBottom; - - float ExtentsAdjust; - DWORD StencilCaps; - - DWORD FVFCaps; - DWORD TextureOpCaps; - DWORD MaxTextureBlendStages; - DWORD MaxSimultaneousTextures; - - DWORD VertexProcessingCaps; - DWORD MaxActiveLights; - DWORD MaxUserClipPlanes; - DWORD MaxVertexBlendMatrices; - DWORD MaxVertexBlendMatrixIndex; - - float MaxPointSize; - - DWORD MaxPrimitiveCount; // max number of primitives per DrawPrimitive call - DWORD MaxVertexIndex; - DWORD MaxStreams; - DWORD MaxStreamStride; // max stride for SetStreamSource - - DWORD VertexShaderVersion; - DWORD MaxVertexShaderConst; // number of vertex shader constant registers - - DWORD PixelShaderVersion; - float PixelShader1xMaxValue; // max value storable in registers of ps.1.x shaders - - // Here are the DX9 specific ones - DWORD DevCaps2; - - float MaxNpatchTessellationLevel; - DWORD Reserved5; - - UINT MasterAdapterOrdinal; // ordinal of master adaptor for adapter group - UINT AdapterOrdinalInGroup; // ordinal inside the adapter group - UINT NumberOfAdaptersInGroup; // number of adapters in this adapter group (only if master) - DWORD DeclTypes; // Data types, supported in vertex declarations - DWORD NumSimultaneousRTs; // Will be at least 1 - DWORD StretchRectFilterCaps; // Filter caps supported by StretchRect - D3DVSHADERCAPS2_0 VS20Caps; - D3DPSHADERCAPS2_0 PS20Caps; - DWORD VertexTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DTexture9's for texture, used in vertex shaders - DWORD MaxVShaderInstructionsExecuted; // maximum number of vertex shader instructions that can be executed - DWORD MaxPShaderInstructionsExecuted; // maximum number of pixel shader instructions that can be executed - DWORD MaxVertexShader30InstructionSlots; - DWORD MaxPixelShader30InstructionSlots; -} - -// -// BIT DEFINES FOR D3DCAPS9 DWORD MEMBERS -// - -// -// Caps -// -const D3DCAPS_READ_SCANLINE = 0x00020000L; - -// -// Caps2 -// -const D3DCAPS2_FULLSCREENGAMMA = 0x00020000L; -const D3DCAPS2_CANCALIBRATEGAMMA = 0x00100000L; -const D3DCAPS2_RESERVED = 0x02000000L; -const D3DCAPS2_CANMANAGERESOURCE = 0x10000000L; -const D3DCAPS2_DYNAMICTEXTURES = 0x20000000L; -const D3DCAPS2_CANAUTOGENMIPMAP = 0x40000000L; - -const D3DCAPS2_CANSHARERESOURCE = 0x80000000L; - -// -// Caps3 -// -const D3DCAPS3_RESERVED = 0x8000001fL; - -// Indicates that the device can respect the ALPHABLENDENABLE render state -// when fullscreen while using the FLIP or DISCARD swap effect. -// COPY and COPYVSYNC swap effects work whether or not this flag is set. -const D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD = 0x00000020L; - -// Indicates that the device can perform a gamma correction from -// a windowed back buffer containing linear content to the sRGB desktop. -const D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION = 0x00000080L; - -const D3DCAPS3_COPY_TO_VIDMEM = 0x00000100L; /* Device can acclerate copies from sysmem to local vidmem */ -const D3DCAPS3_COPY_TO_SYSTEMMEM = 0x00000200L; /* Device can acclerate copies from local vidmem to sysmem */ - - -// -// PresentationIntervals -// -const D3DPRESENT_INTERVAL_DEFAULT = 0x00000000L; -const D3DPRESENT_INTERVAL_ONE = 0x00000001L; -const D3DPRESENT_INTERVAL_TWO = 0x00000002L; -const D3DPRESENT_INTERVAL_THREE = 0x00000004L; -const D3DPRESENT_INTERVAL_FOUR = 0x00000008L; -const D3DPRESENT_INTERVAL_IMMEDIATE = 0x80000000L; - -// -// CursorCaps -// -// Driver supports HW color cursor in at least hi-res modes(height >=400) -const D3DCURSORCAPS_COLOR = 0x00000001L; -// Driver supports HW cursor also in low-res modes(height < 400) -const D3DCURSORCAPS_LOWRES = 0x00000002L; - -// -// DevCaps -// -const D3DDEVCAPS_EXECUTESYSTEMMEMORY = 0x00000010L; /* Device can use execute buffers from system memory */ -const D3DDEVCAPS_EXECUTEVIDEOMEMORY = 0x00000020L; /* Device can use execute buffers from video memory */ -const D3DDEVCAPS_TLVERTEXSYSTEMMEMORY = 0x00000040L; /* Device can use TL buffers from system memory */ -const D3DDEVCAPS_TLVERTEXVIDEOMEMORY = 0x00000080L; /* Device can use TL buffers from video memory */ -const D3DDEVCAPS_TEXTURESYSTEMMEMORY = 0x00000100L; /* Device can texture from system memory */ -const D3DDEVCAPS_TEXTUREVIDEOMEMORY = 0x00000200L; /* Device can texture from device memory */ -const D3DDEVCAPS_DRAWPRIMTLVERTEX = 0x00000400L; /* Device can draw TLVERTEX primitives */ -const D3DDEVCAPS_CANRENDERAFTERFLIP = 0x00000800L; /* Device can render without waiting for flip to complete */ -const D3DDEVCAPS_TEXTURENONLOCALVIDMEM = 0x00001000L; /* Device can texture from nonlocal video memory */ -const D3DDEVCAPS_DRAWPRIMITIVES2 = 0x00002000L; /* Device can support DrawPrimitives2 */ -const D3DDEVCAPS_SEPARATETEXTUREMEMORIES = 0x00004000L; /* Device is texturing from separate memory pools */ -const D3DDEVCAPS_DRAWPRIMITIVES2EX = 0x00008000L; /* Device can support Extended DrawPrimitives2 i.e. DX7 compliant driver*/ -const D3DDEVCAPS_HWTRANSFORMANDLIGHT = 0x00010000L; /* Device can support transformation and lighting in hardware and DRAWPRIMITIVES2EX must be also */ -const D3DDEVCAPS_CANBLTSYSTONONLOCAL = 0x00020000L; /* Device supports a Tex Blt from system memory to non-local vidmem */ -const D3DDEVCAPS_HWRASTERIZATION = 0x00080000L; /* Device has HW acceleration for rasterization */ -const D3DDEVCAPS_PUREDEVICE = 0x00100000L; /* Device supports D3DCREATE_PUREDEVICE */ -const D3DDEVCAPS_QUINTICRTPATCHES = 0x00200000L; /* Device supports quintic Beziers and BSplines */ -const D3DDEVCAPS_RTPATCHES = 0x00400000L; /* Device supports Rect and Tri patches */ -const D3DDEVCAPS_RTPATCHHANDLEZERO = 0x00800000L; /* Indicates that RT Patches may be drawn efficiently using handle 0 */ -const D3DDEVCAPS_NPATCHES = 0x01000000L; /* Device supports N-Patches */ - -// -// PrimitiveMiscCaps -// -const D3DPMISCCAPS_MASKZ = 0x00000002L; -const D3DPMISCCAPS_CULLNONE = 0x00000010L; -const D3DPMISCCAPS_CULLCW = 0x00000020L; -const D3DPMISCCAPS_CULLCCW = 0x00000040L; -const D3DPMISCCAPS_COLORWRITEENABLE = 0x00000080L; -const D3DPMISCCAPS_CLIPPLANESCALEDPOINTS = 0x00000100L; /* Device correctly clips scaled points to clip planes */ -const D3DPMISCCAPS_CLIPTLVERTS = 0x00000200L; /* device will clip post-transformed vertex primitives */ -const D3DPMISCCAPS_TSSARGTEMP = 0x00000400L; /* device supports D3DTA_TEMP for temporary register */ -const D3DPMISCCAPS_BLENDOP = 0x00000800L; /* device supports D3DRS_BLENDOP */ -const D3DPMISCCAPS_NULLREFERENCE = 0x00001000L; /* Reference Device that doesnt render */ -const D3DPMISCCAPS_INDEPENDENTWRITEMASKS = 0x00004000L; /* Device supports independent write masks for MET or MRT */ -const D3DPMISCCAPS_PERSTAGECONSTANT = 0x00008000L; /* Device supports per-stage constants */ -const D3DPMISCCAPS_FOGANDSPECULARALPHA = 0x00010000L; /* Device supports separate fog and specular alpha (many devices - use the specular alpha channel to store fog factor) */ -const D3DPMISCCAPS_SEPARATEALPHABLEND = 0x00020000L; /* Device supports separate blend settings for the alpha channel */ -const D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS = 0x00040000L; /* Device supports different bit depths for MRT */ -const D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING = 0x00080000L; /* Device supports post-pixel shader operations for MRT */ -const D3DPMISCCAPS_FOGVERTEXCLAMPED = 0x00100000L; /* Device clamps fog blend factor per vertex */ - -const D3DPMISCCAPS_POSTBLENDSRGBCONVERT = 0x00200000L; /* Indicates device can perform conversion to sRGB after blending. */ - -// -// LineCaps -// -const D3DLINECAPS_TEXTURE = 0x00000001L; -const D3DLINECAPS_ZTEST = 0x00000002L; -const D3DLINECAPS_BLEND = 0x00000004L; -const D3DLINECAPS_ALPHACMP = 0x00000008L; -const D3DLINECAPS_FOG = 0x00000010L; -const D3DLINECAPS_ANTIALIAS = 0x00000020L; - -// -// RasterCaps -// -const D3DPRASTERCAPS_DITHER = 0x00000001L; -const D3DPRASTERCAPS_ZTEST = 0x00000010L; -const D3DPRASTERCAPS_FOGVERTEX = 0x00000080L; -const D3DPRASTERCAPS_FOGTABLE = 0x00000100L; -const D3DPRASTERCAPS_MIPMAPLODBIAS = 0x00002000L; -const D3DPRASTERCAPS_ZBUFFERLESSHSR = 0x00008000L; -const D3DPRASTERCAPS_FOGRANGE = 0x00010000L; -const D3DPRASTERCAPS_ANISOTROPY = 0x00020000L; -const D3DPRASTERCAPS_WBUFFER = 0x00040000L; -const D3DPRASTERCAPS_WFOG = 0x00100000L; -const D3DPRASTERCAPS_ZFOG = 0x00200000L; -const D3DPRASTERCAPS_COLORPERSPECTIVE = 0x00400000L; /* Device iterates colors perspective correct */ -const D3DPRASTERCAPS_SCISSORTEST = 0x01000000L; -const D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS = 0x02000000L; -const D3DPRASTERCAPS_DEPTHBIAS = 0x04000000L; -const D3DPRASTERCAPS_MULTISAMPLE_TOGGLE = 0x08000000L; - -// -// ZCmpCaps, AlphaCmpCaps -// -const D3DPCMPCAPS_NEVER = 0x00000001L; -const D3DPCMPCAPS_LESS = 0x00000002L; -const D3DPCMPCAPS_EQUAL = 0x00000004L; -const D3DPCMPCAPS_LESSEQUAL = 0x00000008L; -const D3DPCMPCAPS_GREATER = 0x00000010L; -const D3DPCMPCAPS_NOTEQUAL = 0x00000020L; -const D3DPCMPCAPS_GREATEREQUAL = 0x00000040L; -const D3DPCMPCAPS_ALWAYS = 0x00000080L; - -// -// SourceBlendCaps, DestBlendCaps -// -const D3DPBLENDCAPS_ZERO = 0x00000001L; -const D3DPBLENDCAPS_ONE = 0x00000002L; -const D3DPBLENDCAPS_SRCCOLOR = 0x00000004L; -const D3DPBLENDCAPS_INVSRCCOLOR = 0x00000008L; -const D3DPBLENDCAPS_SRCALPHA = 0x00000010L; -const D3DPBLENDCAPS_INVSRCALPHA = 0x00000020L; -const D3DPBLENDCAPS_DESTALPHA = 0x00000040L; -const D3DPBLENDCAPS_INVDESTALPHA = 0x00000080L; -const D3DPBLENDCAPS_DESTCOLOR = 0x00000100L; -const D3DPBLENDCAPS_INVDESTCOLOR = 0x00000200L; -const D3DPBLENDCAPS_SRCALPHASAT = 0x00000400L; -const D3DPBLENDCAPS_BOTHSRCALPHA = 0x00000800L; -const D3DPBLENDCAPS_BOTHINVSRCALPHA = 0x00001000L; -const D3DPBLENDCAPS_BLENDFACTOR = 0x00002000L; /* Supports both D3DBLEND_BLENDFACTOR and D3DBLEND_INVBLENDFACTOR */ - -const D3DPBLENDCAPS_SRCCOLOR2 = 0x00004000L; -const D3DPBLENDCAPS_INVSRCCOLOR2 = 0x00008000L; - -// -// ShadeCaps -// -const D3DPSHADECAPS_COLORGOURAUDRGB = 0x00000008L; -const D3DPSHADECAPS_SPECULARGOURAUDRGB = 0x00000200L; -const D3DPSHADECAPS_ALPHAGOURAUDBLEND = 0x00004000L; -const D3DPSHADECAPS_FOGGOURAUD = 0x00080000L; - -// -// TextureCaps -// -const D3DPTEXTURECAPS_PERSPECTIVE = 0x00000001L; /* Perspective-correct texturing is supported */ -const D3DPTEXTURECAPS_POW2 = 0x00000002L; /* Power-of-2 texture dimensions are required - applies to non-Cube/Volume textures only. */ -const D3DPTEXTURECAPS_ALPHA = 0x00000004L; /* Alpha in texture pixels is supported */ -const D3DPTEXTURECAPS_SQUAREONLY = 0x00000020L; /* Only square textures are supported */ -const D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE = 0x00000040L; /* Texture indices are not scaled by the texture size prior to interpolation */ -const D3DPTEXTURECAPS_ALPHAPALETTE = 0x00000080L; /* Device can draw alpha from texture palettes */ -// Device can use non-POW2 textures if: -// 1) D3DTEXTURE_ADDRESS is set to CLAMP for this texture's stage -// 2) D3DRS_WRAP(N) is zero for this texture's coordinates -// 3) mip mapping is not enabled (use magnification filter only) -const D3DPTEXTURECAPS_NONPOW2CONDITIONAL = 0x00000100L; -const D3DPTEXTURECAPS_PROJECTED = 0x00000400L; /* Device can do D3DTTFF_PROJECTED */ -const D3DPTEXTURECAPS_CUBEMAP = 0x00000800L; /* Device can do cubemap textures */ -const D3DPTEXTURECAPS_VOLUMEMAP = 0x00002000L; /* Device can do volume textures */ -const D3DPTEXTURECAPS_MIPMAP = 0x00004000L; /* Device can do mipmapped textures */ -const D3DPTEXTURECAPS_MIPVOLUMEMAP = 0x00008000L; /* Device can do mipmapped volume textures */ -const D3DPTEXTURECAPS_MIPCUBEMAP = 0x00010000L; /* Device can do mipmapped cube maps */ -const D3DPTEXTURECAPS_CUBEMAP_POW2 = 0x00020000L; /* Device requires that cubemaps be power-of-2 dimension */ -const D3DPTEXTURECAPS_VOLUMEMAP_POW2 = 0x00040000L; /* Device requires that volume maps be power-of-2 dimension */ -const D3DPTEXTURECAPS_NOPROJECTEDBUMPENV = 0x00200000L; /* Device does not support projected bump env lookup operation - in programmable and fixed function pixel shaders */ - -// -// TextureFilterCaps, StretchRectFilterCaps -// -const D3DPTFILTERCAPS_MINFPOINT = 0x00000100L; /* Min Filter */ -const D3DPTFILTERCAPS_MINFLINEAR = 0x00000200L; -const D3DPTFILTERCAPS_MINFANISOTROPIC = 0x00000400L; -const D3DPTFILTERCAPS_MINFPYRAMIDALQUAD = 0x00000800L; -const D3DPTFILTERCAPS_MINFGAUSSIANQUAD = 0x00001000L; -const D3DPTFILTERCAPS_MIPFPOINT = 0x00010000L; /* Mip Filter */ -const D3DPTFILTERCAPS_MIPFLINEAR = 0x00020000L; - -const D3DPTFILTERCAPS_CONVOLUTIONMONO = 0x00040000L; /* Min and Mag for the convolution mono filter */ - -const D3DPTFILTERCAPS_MAGFPOINT = 0x01000000L; /* Mag Filter */ -const D3DPTFILTERCAPS_MAGFLINEAR = 0x02000000L; -const D3DPTFILTERCAPS_MAGFANISOTROPIC = 0x04000000L; -const D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD = 0x08000000L; -const D3DPTFILTERCAPS_MAGFGAUSSIANQUAD = 0x10000000L; - -// -// TextureAddressCaps -// -const D3DPTADDRESSCAPS_WRAP = 0x00000001L; -const D3DPTADDRESSCAPS_MIRROR = 0x00000002L; -const D3DPTADDRESSCAPS_CLAMP = 0x00000004L; -const D3DPTADDRESSCAPS_BORDER = 0x00000008L; -const D3DPTADDRESSCAPS_INDEPENDENTUV = 0x00000010L; -const D3DPTADDRESSCAPS_MIRRORONCE = 0x00000020L; - -// -// StencilCaps -// -const D3DSTENCILCAPS_KEEP = 0x00000001L; -const D3DSTENCILCAPS_ZERO = 0x00000002L; -const D3DSTENCILCAPS_REPLACE = 0x00000004L; -const D3DSTENCILCAPS_INCRSAT = 0x00000008L; -const D3DSTENCILCAPS_DECRSAT = 0x00000010L; -const D3DSTENCILCAPS_INVERT = 0x00000020L; -const D3DSTENCILCAPS_INCR = 0x00000040L; -const D3DSTENCILCAPS_DECR = 0x00000080L; -const D3DSTENCILCAPS_TWOSIDED = 0x00000100L; - -// -// TextureOpCaps -// -const D3DTEXOPCAPS_DISABLE = 0x00000001L; -const D3DTEXOPCAPS_SELECTARG1 = 0x00000002L; -const D3DTEXOPCAPS_SELECTARG2 = 0x00000004L; -const D3DTEXOPCAPS_MODULATE = 0x00000008L; -const D3DTEXOPCAPS_MODULATE2X = 0x00000010L; -const D3DTEXOPCAPS_MODULATE4X = 0x00000020L; -const D3DTEXOPCAPS_ADD = 0x00000040L; -const D3DTEXOPCAPS_ADDSIGNED = 0x00000080L; -const D3DTEXOPCAPS_ADDSIGNED2X = 0x00000100L; -const D3DTEXOPCAPS_SUBTRACT = 0x00000200L; -const D3DTEXOPCAPS_ADDSMOOTH = 0x00000400L; -const D3DTEXOPCAPS_BLENDDIFFUSEALPHA = 0x00000800L; -const D3DTEXOPCAPS_BLENDTEXTUREALPHA = 0x00001000L; -const D3DTEXOPCAPS_BLENDFACTORALPHA = 0x00002000L; -const D3DTEXOPCAPS_BLENDTEXTUREALPHAPM = 0x00004000L; -const D3DTEXOPCAPS_BLENDCURRENTALPHA = 0x00008000L; -const D3DTEXOPCAPS_PREMODULATE = 0x00010000L; -const D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR = 0x00020000L; -const D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA = 0x00040000L; -const D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR = 0x00080000L; -const D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA = 0x00100000L; -const D3DTEXOPCAPS_BUMPENVMAP = 0x00200000L; -const D3DTEXOPCAPS_BUMPENVMAPLUMINANCE = 0x00400000L; -const D3DTEXOPCAPS_DOTPRODUCT3 = 0x00800000L; -const D3DTEXOPCAPS_MULTIPLYADD = 0x01000000L; -const D3DTEXOPCAPS_LERP = 0x02000000L; - -// -// FVFCaps -// -const D3DFVFCAPS_TEXCOORDCOUNTMASK = 0x0000ffffL; /* mask for texture coordinate count field */ -const D3DFVFCAPS_DONOTSTRIPELEMENTS = 0x00080000L; /* Device prefers that vertex elements not be stripped */ -const D3DFVFCAPS_PSIZE = 0x00100000L; /* Device can receive point size */ - -// -// VertexProcessingCaps -// -const D3DVTXPCAPS_TEXGEN = 0x00000001L; /* device can do texgen */ -const D3DVTXPCAPS_MATERIALSOURCE7 = 0x00000002L; /* device can do DX7-level colormaterialsource ops */ -const D3DVTXPCAPS_DIRECTIONALLIGHTS = 0x00000008L; /* device can do directional lights */ -const D3DVTXPCAPS_POSITIONALLIGHTS = 0x00000010L; /* device can do positional lights (includes point and spot) */ -const D3DVTXPCAPS_LOCALVIEWER = 0x00000020L; /* device can do local viewer */ -const D3DVTXPCAPS_TWEENING = 0x00000040L; /* device can do vertex tweening */ -const D3DVTXPCAPS_TEXGEN_SPHEREMAP = 0x00000100L; /* device supports D3DTSS_TCI_SPHEREMAP */ -const D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER = 0x00000200L; /* device does not support TexGen in non-local - viewer mode */ - -// -// DevCaps2 -// -const D3DDEVCAPS2_STREAMOFFSET = 0x00000001L; /* Device supports offsets in streams. Must be set by DX9 drivers */ -const D3DDEVCAPS2_DMAPNPATCH = 0x00000002L; /* Device supports displacement maps for N-Patches*/ -const D3DDEVCAPS2_ADAPTIVETESSRTPATCH = 0x00000004L; /* Device supports adaptive tesselation of RT-patches*/ -const D3DDEVCAPS2_ADAPTIVETESSNPATCH = 0x00000008L; /* Device supports adaptive tesselation of N-patches*/ -const D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES = 0x00000010L; /* Device supports StretchRect calls with a texture as the source*/ -const D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH = 0x00000020L; /* Device supports presampled displacement maps for N-Patches */ -const D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET = 0x00000040L; /* Vertex elements in a vertex declaration can share the same stream offset */ - -// -// DeclTypes -// -const D3DDTCAPS_UBYTE4 = 0x00000001L; -const D3DDTCAPS_UBYTE4N = 0x00000002L; -const D3DDTCAPS_SHORT2N = 0x00000004L; -const D3DDTCAPS_SHORT4N = 0x00000008L; -const D3DDTCAPS_USHORT2N = 0x00000010L; -const D3DDTCAPS_USHORT4N = 0x00000020L; -const D3DDTCAPS_UDEC3 = 0x00000040L; -const D3DDTCAPS_DEC3N = 0x00000080L; -const D3DDTCAPS_FLOAT16_2 = 0x00000100L; -const D3DDTCAPS_FLOAT16_4 = 0x00000200L; DELETED src/win32/directx/d3d9types.d Index: src/win32/directx/d3d9types.d ================================================================== --- src/win32/directx/d3d9types.d +++ src/win32/directx/d3d9types.d @@ -1,1846 +0,0 @@ -/*==========================================================================; - * - * Copyright (C) Microsoft Corporation. All Rights Reserved. - * - * File: d3d9types.h - * Content: Direct3D capabilities include file - * - ***************************************************************************/ - -module win32.directx.d3d9types; - -private import win32.windows; - -// Alignment compatibility -align(4): - -// D3DCOLOR is equivalent to D3DFMT_A8R8G8B8 -alias TypeDef!(uint) D3DCOLOR; - -// maps unsigned 8 bits/channel to D3DCOLOR -D3DCOLOR D3DCOLOR_ARGB(ubyte a,ubyte r,ubyte g,ubyte b) { return cast(D3DCOLOR)((a<<24)|(r<<16)|(g<<8)|b); } -D3DCOLOR D3DCOLOR_RGBA(ubyte r,ubyte g,ubyte b,ubyte a) { return D3DCOLOR_ARGB(a,r,g,b); } -D3DCOLOR D3DCOLOR_XRGB(ubyte r,ubyte g,ubyte b) { return D3DCOLOR_ARGB(0xff,r,g,b); } - -D3DCOLOR D3DCOLOR_XYUV(ubyte y, ubyte u, ubyte v) { return D3DCOLOR_ARGB(0xff,y,u,v); } -D3DCOLOR D3DCOLOR_AYUV( ubyte a, ubyte y, ubyte u, ubyte v) { return D3DCOLOR_ARGB(a,y,u,v); } - -// maps floating point channels (0.f to 1.f range) to D3DCOLOR -D3DCOLOR D3DCOLOR_COLORVALUE(float r, float g, float b, float a) { return D3DCOLOR_RGBA(cast(ubyte)(r*255.0f),cast(ubyte)(g*255.0f),cast(ubyte)(b*255.0f),cast(ubyte)(a*255.0f)); } - -struct D3DVECTOR { - float x; - float y; - float z; -} - -struct D3DCOLORVALUE { - float r; - float g; - float b; - float a; -} - -struct D3DRECT { - LONG x1; - LONG y1; - LONG x2; - LONG y2; -} - -struct D3DMATRIX { - union { - struct { - float _11, _12, _13, _14; - float _21, _22, _23, _24; - float _31, _32, _33, _34; - float _41, _42, _43, _44; - } - float[4][4] m; - } -} - -struct D3DVIEWPORT9 { - uint X; - uint Y; /* Viewport Top left */ - uint Width; - uint Height; /* Viewport Dimensions */ - float MinZ; /* Min/max of clip Volume */ - float MaxZ; -} - -/* - * Values for clip fields. - */ - -// Max number of user clipping planes, supported in D3D. -const D3DMAXUSERCLIPPLANES = 32; - -// These bits could be ORed together to use with D3DRS_CLIPPLANEENABLE -// -const D3DCLIPPLANE0 = (1<<0); -const D3DCLIPPLANE1 = (1<<1); -const D3DCLIPPLANE2 = (1<<2); -const D3DCLIPPLANE3 = (1<<3); -const D3DCLIPPLANE4 = (1<<4); -const D3DCLIPPLANE5 = (1<<5); - -// The following bits are used in the ClipUnion and ClipIntersection -// members of the D3DCLIPSTATUS9 -// - -const D3DCS_LEFT = 0x00000001L; -const D3DCS_RIGHT = 0x00000002L; -const D3DCS_TOP = 0x00000004L; -const D3DCS_BOTTOM = 0x00000008L; -const D3DCS_FRONT = 0x00000010L; -const D3DCS_BACK = 0x00000020L; -const D3DCS_PLANE0 = 0x00000040L; -const D3DCS_PLANE1 = 0x00000080L; -const D3DCS_PLANE2 = 0x00000100L; -const D3DCS_PLANE3 = 0x00000200L; -const D3DCS_PLANE4 = 0x00000400L; -const D3DCS_PLANE5 = 0x00000800L; - -const D3DCS_ALL = D3DCS_LEFT | - D3DCS_RIGHT | - D3DCS_TOP | - D3DCS_BOTTOM | - D3DCS_FRONT | - D3DCS_BACK | - D3DCS_PLANE0 | - D3DCS_PLANE1 | - D3DCS_PLANE2 | - D3DCS_PLANE3 | - D3DCS_PLANE4 | - D3DCS_PLANE5; - -struct D3DCLIPSTATUS9 { - uint ClipUnion; - uint ClipIntersection; -} - -struct D3DMATERIAL9 { - D3DCOLORVALUE Diffuse; /* Diffuse color RGBA */ - D3DCOLORVALUE Ambient; /* Ambient color RGB */ - D3DCOLORVALUE Specular; /* Specular 'shininess' */ - D3DCOLORVALUE Emissive; /* Emissive color RGB */ - float Power; /* Sharpness if specular highlight */ -} - -enum : uint { - D3DLIGHT_POINT = 1, - D3DLIGHT_SPOT = 2, - D3DLIGHT_DIRECTIONAL = 3 -} -alias TypeDef!(uint) D3DLIGHTTYPE; - -struct D3DLIGHT9 { - D3DLIGHTTYPE Type; /* Type of light source */ - D3DCOLORVALUE Diffuse; /* Diffuse color of light */ - D3DCOLORVALUE Specular; /* Specular color of light */ - D3DCOLORVALUE Ambient; /* Ambient color of light */ - D3DVECTOR Position; /* Position in world space */ - D3DVECTOR Direction; /* Direction in world space */ - float Range; /* Cutoff range */ - float Falloff; /* Falloff */ - float Attenuation0; /* Constant attenuation */ - float Attenuation1; /* Linear attenuation */ - float Attenuation2; /* Quadratic attenuation */ - float Theta; /* Inner angle of spotlight cone */ - float Phi; /* Outer angle of spotlight cone */ -} - -/* - * Options for clearing - */ -const D3DCLEAR_TARGET = 0x00000001L; /* Clear target surface */ -const D3DCLEAR_ZBUFFER = 0x00000002L; /* Clear target z buffer */ -const D3DCLEAR_STENCIL = 0x00000004L; /* Clear stencil planes */ - -/* - * The following defines the rendering states - */ - -enum : D3DSHADEMODE { - D3DSHADE_FLAT = 1, - D3DSHADE_GOURAUD = 2, - D3DSHADE_PHONG = 3 -} -alias TypeDef!(uint) D3DSHADEMODE; - -enum : D3DFILLMODE { - D3DFILL_POINT = 1, - D3DFILL_WIREFRAME = 2, - D3DFILL_SOLID = 3 -} -alias TypeDef!(uint) D3DFILLMODE; - -enum : D3DBLEND { - D3DBLEND_ZERO = 1, - D3DBLEND_ONE = 2, - D3DBLEND_SRCCOLOR = 3, - D3DBLEND_INVSRCCOLOR = 4, - D3DBLEND_SRCALPHA = 5, - D3DBLEND_INVSRCALPHA = 6, - D3DBLEND_DESTALPHA = 7, - D3DBLEND_INVDESTALPHA = 8, - D3DBLEND_DESTCOLOR = 9, - D3DBLEND_INVDESTCOLOR = 10, - D3DBLEND_SRCALPHASAT = 11, - D3DBLEND_BOTHSRCALPHA = 12, - D3DBLEND_BOTHINVSRCALPHA = 13, - D3DBLEND_BLENDFACTOR = 14, /* Only supported if D3DPBLENDCAPS_BLENDFACTOR is on */ - D3DBLEND_INVBLENDFACTOR = 15, /* Only supported if D3DPBLENDCAPS_BLENDFACTOR is on */ - D3DBLEND_SRCCOLOR2 = 16, - D3DBLEND_INVSRCCOLOR2 = 17 -} -alias TypeDef!(uint) D3DBLEND; - -enum : D3DBLENDOP { - D3DBLENDOP_ADD = 1, - D3DBLENDOP_SUBTRACT = 2, - D3DBLENDOP_REVSUBTRACT = 3, - D3DBLENDOP_MIN = 4, - D3DBLENDOP_MAX = 5 -} -alias TypeDef!(uint) D3DBLENDOP; - -enum : D3DTEXTUREADDRESS { - D3DTADDRESS_WRAP = 1, - D3DTADDRESS_MIRROR = 2, - D3DTADDRESS_CLAMP = 3, - D3DTADDRESS_BORDER = 4, - D3DTADDRESS_MIRRORONCE = 5 -} -alias TypeDef!(uint) D3DTEXTUREADDRESS; - -enum : D3DCULL { - D3DCULL_NONE = 1, - D3DCULL_CW = 2, - D3DCULL_CCW = 3 -} -alias TypeDef!(uint) D3DCULL; - -enum : D3DCMPFUNC { - D3DCMP_NEVER = 1, - D3DCMP_LESS = 2, - D3DCMP_EQUAL = 3, - D3DCMP_LESSEQUAL = 4, - D3DCMP_GREATER = 5, - D3DCMP_NOTEQUAL = 6, - D3DCMP_GREATEREQUAL = 7, - D3DCMP_ALWAYS = 8 -} -alias TypeDef!(uint) D3DCMPFUNC; - -enum : D3DSTENCILOP { - D3DSTENCILOP_KEEP = 1, - D3DSTENCILOP_ZERO = 2, - D3DSTENCILOP_REPLACE = 3, - D3DSTENCILOP_INCRSAT = 4, - D3DSTENCILOP_DECRSAT = 5, - D3DSTENCILOP_INVERT = 6, - D3DSTENCILOP_INCR = 7, - D3DSTENCILOP_DECR = 8 -} -alias TypeDef!(uint) D3DSTENCILOP; - -enum : D3DFOGMODE { - D3DFOG_NONE = 0, - D3DFOG_EXP = 1, - D3DFOG_EXP2 = 2, - D3DFOG_LINEAR = 3 -} -alias TypeDef!(uint) D3DFOGMODE; - -enum : D3DZBUFFERTYPE { - D3DZB_FALSE = 0, - D3DZB_TRUE = 1, // Z buffering - D3DZB_USEW = 2 // W buffering -} -alias TypeDef!(uint) D3DZBUFFERTYPE; - -// Primitives supported by draw-primitive API -enum : D3DPRIMITIVETYPE { - D3DPT_POINTLIST = 1, - D3DPT_LINELIST = 2, - D3DPT_LINESTRIP = 3, - D3DPT_TRIANGLELIST = 4, - D3DPT_TRIANGLESTRIP = 5, - D3DPT_TRIANGLEFAN = 6 -} -alias TypeDef!(uint) D3DPRIMITIVETYPE; - -D3DTRANSFORMSTATETYPE D3DTS_WORLDMATRIX(uint index) { return cast(D3DTRANSFORMSTATETYPE)(index + 256); } -template T_D3DTS_WORLDMATRIX(uint index) { - const D3DTRANSFORMSTATETYPE T_D3DTS_WORLDMATRIX = index + 256; -} - -enum : D3DTRANSFORMSTATETYPE { - D3DTS_VIEW = 2, - D3DTS_PROJECTION = 3, - D3DTS_TEXTURE0 = 16, - D3DTS_TEXTURE1 = 17, - D3DTS_TEXTURE2 = 18, - D3DTS_TEXTURE3 = 19, - D3DTS_TEXTURE4 = 20, - D3DTS_TEXTURE5 = 21, - D3DTS_TEXTURE6 = 22, - D3DTS_TEXTURE7 = 23, - D3DTS_WORLD = T_D3DTS_WORLDMATRIX!(0), - D3DTS_WORLD1 = T_D3DTS_WORLDMATRIX!(1), - D3DTS_WORLD2 = T_D3DTS_WORLDMATRIX!(2), - D3DTS_WORLD3 = T_D3DTS_WORLDMATRIX!(3) -} -alias TypeDef!(uint) D3DTRANSFORMSTATETYPE; - -enum : D3DRENDERSTATETYPE { - D3DRS_ZENABLE = 7, /* D3DZBUFFERTYPE (or TRUE/FALSE for legacy) */ - D3DRS_FILLMODE = 8, /* D3DFILLMODE */ - D3DRS_SHADEMODE = 9, /* D3DSHADEMODE */ - D3DRS_ZWRITEENABLE = 14, /* TRUE to enable z writes */ - D3DRS_ALPHATESTENABLE = 15, /* TRUE to enable alpha tests */ - D3DRS_LASTPIXEL = 16, /* TRUE for last-pixel on lines */ - D3DRS_SRCBLEND = 19, /* D3DBLEND */ - D3DRS_DESTBLEND = 20, /* D3DBLEND */ - D3DRS_CULLMODE = 22, /* D3DCULL */ - D3DRS_ZFUNC = 23, /* D3DCMPFUNC */ - D3DRS_ALPHAREF = 24, /* D3DFIXED */ - D3DRS_ALPHAFUNC = 25, /* D3DCMPFUNC */ - D3DRS_DITHERENABLE = 26, /* TRUE to enable dithering */ - D3DRS_ALPHABLENDENABLE = 27, /* TRUE to enable alpha blending */ - D3DRS_FOGENABLE = 28, /* TRUE to enable fog blending */ - D3DRS_SPECULARENABLE = 29, /* TRUE to enable specular */ - D3DRS_FOGCOLOR = 34, /* D3DCOLOR */ - D3DRS_FOGTABLEMODE = 35, /* D3DFOGMODE */ - D3DRS_FOGSTART = 36, /* Fog start (for both vertex and pixel fog) */ - D3DRS_FOGEND = 37, /* Fog end */ - D3DRS_FOGDENSITY = 38, /* Fog density */ - D3DRS_RANGEFOGENABLE = 48, /* Enables range-based fog */ - D3DRS_STENCILENABLE = 52, /* BOOL enable/disable stenciling */ - D3DRS_STENCILFAIL = 53, /* D3DSTENCILOP to do if stencil test fails */ - D3DRS_STENCILZFAIL = 54, /* D3DSTENCILOP to do if stencil test passes and Z test fails */ - D3DRS_STENCILPASS = 55, /* D3DSTENCILOP to do if both stencil and Z tests pass */ - D3DRS_STENCILFUNC = 56, /* D3DCMPFUNC fn. Stencil Test passes if ((ref & mask) stencilfn (stencil & mask)) is true */ - D3DRS_STENCILREF = 57, /* Reference value used in stencil test */ - D3DRS_STENCILMASK = 58, /* Mask value used in stencil test */ - D3DRS_STENCILWRITEMASK = 59, /* Write mask applied to values written to stencil buffer */ - D3DRS_TEXTUREFACTOR = 60, /* D3DCOLOR used for multi-texture blend */ - D3DRS_WRAP0 = 128, /* wrap for 1st texture coord. set */ - D3DRS_WRAP1 = 129, /* wrap for 2nd texture coord. set */ - D3DRS_WRAP2 = 130, /* wrap for 3rd texture coord. set */ - D3DRS_WRAP3 = 131, /* wrap for 4th texture coord. set */ - D3DRS_WRAP4 = 132, /* wrap for 5th texture coord. set */ - D3DRS_WRAP5 = 133, /* wrap for 6th texture coord. set */ - D3DRS_WRAP6 = 134, /* wrap for 7th texture coord. set */ - D3DRS_WRAP7 = 135, /* wrap for 8th texture coord. set */ - D3DRS_CLIPPING = 136, - D3DRS_LIGHTING = 137, - D3DRS_AMBIENT = 139, - D3DRS_FOGVERTEXMODE = 140, - D3DRS_COLORVERTEX = 141, - D3DRS_LOCALVIEWER = 142, - D3DRS_NORMALIZENORMALS = 143, - D3DRS_DIFFUSEMATERIALSOURCE = 145, - D3DRS_SPECULARMATERIALSOURCE = 146, - D3DRS_AMBIENTMATERIALSOURCE = 147, - D3DRS_EMISSIVEMATERIALSOURCE = 148, - D3DRS_VERTEXBLEND = 151, - D3DRS_CLIPPLANEENABLE = 152, - D3DRS_POINTSIZE = 154, /* float point size */ - D3DRS_POINTSIZE_MIN = 155, /* float point size min threshold */ - D3DRS_POINTSPRITEENABLE = 156, /* BOOL point texture coord control */ - D3DRS_POINTSCALEENABLE = 157, /* BOOL point size scale enable */ - D3DRS_POINTSCALE_A = 158, /* float point attenuation A value */ - D3DRS_POINTSCALE_B = 159, /* float point attenuation B value */ - D3DRS_POINTSCALE_C = 160, /* float point attenuation C value */ - D3DRS_MULTISAMPLEANTIALIAS = 161, // BOOL - set to do FSAA with multisample buffer - D3DRS_MULTISAMPLEMASK = 162, // DWORD - per-sample enable/disable - D3DRS_PATCHEDGESTYLE = 163, // Sets whether patch edges will use float style tessellation - D3DRS_DEBUGMONITORTOKEN = 165, // DEBUG ONLY - token to debug monitor - D3DRS_POINTSIZE_MAX = 166, /* float point size max threshold */ - D3DRS_INDEXEDVERTEXBLENDENABLE = 167, - D3DRS_COLORWRITEENABLE = 168, // per-channel write enable - D3DRS_TWEENFACTOR = 170, // float tween factor - D3DRS_BLENDOP = 171, // D3DBLENDOP setting - D3DRS_POSITIONDEGREE = 172, // NPatch position interpolation degree. D3DDEGREE_LINEAR or D3DDEGREE_CUBIC (default) - D3DRS_NORMALDEGREE = 173, // NPatch normal interpolation degree. D3DDEGREE_LINEAR (default) or D3DDEGREE_QUADRATIC - D3DRS_SCISSORTESTENABLE = 174, - D3DRS_SLOPESCALEDEPTHBIAS = 175, - D3DRS_ANTIALIASEDLINEENABLE = 176, - D3DRS_MINTESSELLATIONLEVEL = 178, - D3DRS_MAXTESSELLATIONLEVEL = 179, - D3DRS_ADAPTIVETESS_X = 180, - D3DRS_ADAPTIVETESS_Y = 181, - D3DRS_ADAPTIVETESS_Z = 182, - D3DRS_ADAPTIVETESS_W = 183, - D3DRS_ENABLEADAPTIVETESSELLATION = 184, - D3DRS_TWOSIDEDSTENCILMODE = 185, /* BOOL enable/disable 2 sided stenciling */ - D3DRS_CCW_STENCILFAIL = 186, /* D3DSTENCILOP to do if ccw stencil test fails */ - D3DRS_CCW_STENCILZFAIL = 187, /* D3DSTENCILOP to do if ccw stencil test passes and Z test fails */ - D3DRS_CCW_STENCILPASS = 188, /* D3DSTENCILOP to do if both ccw stencil and Z tests pass */ - D3DRS_CCW_STENCILFUNC = 189, /* D3DCMPFUNC fn. ccw Stencil Test passes if ((ref & mask) stencilfn (stencil & mask)) is true */ - D3DRS_COLORWRITEENABLE1 = 190, /* Additional ColorWriteEnables for the devices that support D3DPMISCCAPS_INDEPENDENTWRITEMASKS */ - D3DRS_COLORWRITEENABLE2 = 191, /* Additional ColorWriteEnables for the devices that support D3DPMISCCAPS_INDEPENDENTWRITEMASKS */ - D3DRS_COLORWRITEENABLE3 = 192, /* Additional ColorWriteEnables for the devices that support D3DPMISCCAPS_INDEPENDENTWRITEMASKS */ - D3DRS_BLENDFACTOR = 193, /* D3DCOLOR used for a constant blend factor during alpha blending for devices that support D3DPBLENDCAPS_BLENDFACTOR */ - D3DRS_SRGBWRITEENABLE = 194, /* Enable rendertarget writes to be DE-linearized to SRGB (for formats that expose D3DUSAGE_QUERY_SRGBWRITE) */ - D3DRS_DEPTHBIAS = 195, - D3DRS_WRAP8 = 198, /* Additional wrap states for vs_3_0+ attributes with D3DDECLUSAGE_TEXCOORD */ - D3DRS_WRAP9 = 199, - D3DRS_WRAP10 = 200, - D3DRS_WRAP11 = 201, - D3DRS_WRAP12 = 202, - D3DRS_WRAP13 = 203, - D3DRS_WRAP14 = 204, - D3DRS_WRAP15 = 205, - D3DRS_SEPARATEALPHABLENDENABLE = 206, /* TRUE to enable a separate blending function for the alpha channel */ - D3DRS_SRCBLENDALPHA = 207, /* SRC blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */ - D3DRS_DESTBLENDALPHA = 208, /* DST blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */ - D3DRS_BLENDOPALPHA = 209 /* Blending operation for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */ -} -alias TypeDef!(uint) D3DRENDERSTATETYPE; - -// Maximum number of simultaneous render targets D3D supports -const D3D_MAX_SIMULTANEOUS_RENDERTARGETS = 4; - -// Values for material source -enum : D3DMATERIALCOLORSOURCE { - D3DMCS_MATERIAL = 0, // Color from material is used - D3DMCS_COLOR1 = 1, // Diffuse vertex color is used - D3DMCS_COLOR2 = 2 // Specular vertex color is used -} -alias TypeDef!(uint) D3DMATERIALCOLORSOURCE; - -// Bias to apply to the texture coordinate set to apply a wrap to. -const D3DRENDERSTATE_WRAPBIAS = 128UL; - -/* Flags to construct the WRAP render states */ -const D3DWRAP_U = 0x00000001L; -const D3DWRAP_V = 0x00000002L; -const D3DWRAP_W = 0x00000004L; - -/* Flags to construct the WRAP render states for 1D thru 4D texture coordinates */ -const D3DWRAPCOORD_0 = 0x00000001L; // same as D3DWRAP_U -const D3DWRAPCOORD_1 = 0x00000002L; // same as D3DWRAP_V -const D3DWRAPCOORD_2 = 0x00000004L; // same as D3DWRAP_W -const D3DWRAPCOORD_3 = 0x00000008L; - -/* Flags to construct D3DRS_COLORWRITEENABLE */ -const D3DCOLORWRITEENABLE_RED = (1L<<0); -const D3DCOLORWRITEENABLE_GREEN = (1L<<1); -const D3DCOLORWRITEENABLE_BLUE = (1L<<2); -const D3DCOLORWRITEENABLE_ALPHA = (1L<<3); - -/* - * State enumerants for per-stage processing of fixed function pixel processing - * Two of these affect fixed function vertex processing as well: TEXTURETRANSFORMFLAGS and TEXCOORDINDEX. - */ -enum : D3DTEXTURESTAGESTATETYPE { - D3DTSS_COLOROP = 1, /* D3DTEXTUREOP - per-stage blending controls for color channels */ - D3DTSS_COLORARG1 = 2, /* D3DTA_* (texture arg) */ - D3DTSS_COLORARG2 = 3, /* D3DTA_* (texture arg) */ - D3DTSS_ALPHAOP = 4, /* D3DTEXTUREOP - per-stage blending controls for alpha channel */ - D3DTSS_ALPHAARG1 = 5, /* D3DTA_* (texture arg) */ - D3DTSS_ALPHAARG2 = 6, /* D3DTA_* (texture arg) */ - D3DTSS_BUMPENVMAT00 = 7, /* float (bump mapping matrix) */ - D3DTSS_BUMPENVMAT01 = 8, /* float (bump mapping matrix) */ - D3DTSS_BUMPENVMAT10 = 9, /* float (bump mapping matrix) */ - D3DTSS_BUMPENVMAT11 = 10, /* float (bump mapping matrix) */ - D3DTSS_TEXCOORDINDEX = 11, /* identifies which set of texture coordinates index this texture */ - D3DTSS_BUMPENVLSCALE = 22, /* float scale for bump map luminance */ - D3DTSS_BUMPENVLOFFSET = 23, /* float offset for bump map luminance */ - D3DTSS_TEXTURETRANSFORMFLAGS = 24, /* D3DTEXTURETRANSFORMFLAGS controls texture transform */ - D3DTSS_COLORARG0 = 26, /* D3DTA_* third arg for triadic ops */ - D3DTSS_ALPHAARG0 = 27, /* D3DTA_* third arg for triadic ops */ - D3DTSS_RESULTARG = 28, /* D3DTA_* arg for result (CURRENT or TEMP) */ - D3DTSS_CONSTANT = 32 /* Per-stage constant D3DTA_CONSTANT */ -} -alias TypeDef!(uint) D3DTEXTURESTAGESTATETYPE; - -/* - * State enumerants for per-sampler texture processing. - */ -enum : D3DSAMPLERSTATETYPE { - D3DSAMP_ADDRESSU = 1, /* D3DTEXTUREADDRESS for U coordinate */ - D3DSAMP_ADDRESSV = 2, /* D3DTEXTUREADDRESS for V coordinate */ - D3DSAMP_ADDRESSW = 3, /* D3DTEXTUREADDRESS for W coordinate */ - D3DSAMP_BORDERCOLOR = 4, /* D3DCOLOR */ - D3DSAMP_MAGFILTER = 5, /* D3DTEXTUREFILTER filter to use for magnification */ - D3DSAMP_MINFILTER = 6, /* D3DTEXTUREFILTER filter to use for minification */ - D3DSAMP_MIPFILTER = 7, /* D3DTEXTUREFILTER filter to use between mipmaps during minification */ - D3DSAMP_MIPMAPLODBIAS = 8, /* float Mipmap LOD bias */ - D3DSAMP_MAXMIPLEVEL = 9, /* DWORD 0..(n-1) LOD index of largest map to use (0 == largest) */ - D3DSAMP_MAXANISOTROPY = 10, /* DWORD maximum anisotropy */ - D3DSAMP_SRGBTEXTURE = 11, /* Default = 0 (which means Gamma 1.0, - no correction required.) else correct for - Gamma = 2.2 */ - D3DSAMP_ELEMENTINDEX = 12, /* When multi-element texture is assigned to sampler, this - indicates which element index to use. Default = 0. */ - D3DSAMP_DMAPOFFSET = 13 /* Offset in vertices in the pre-sampled displacement map. - Only valid for D3DDMAPSAMPLER sampler */ -} -alias TypeDef!(uint) D3DSAMPLERSTATETYPE; - -/* Special sampler which is used in the tesselator */ -const D3DDMAPSAMPLER = 256; - -// Samplers used in vertex shaders -const D3DVERTEXTEXTURESAMPLER0 = (D3DDMAPSAMPLER+1); -const D3DVERTEXTEXTURESAMPLER1 = (D3DDMAPSAMPLER+2); -const D3DVERTEXTEXTURESAMPLER2 = (D3DDMAPSAMPLER+3); -const D3DVERTEXTEXTURESAMPLER3 = (D3DDMAPSAMPLER+4); - -// Values, used with D3DTSS_TEXCOORDINDEX, to specify that the vertex data(position -// and normal in the camera space) should be taken as texture coordinates -// Low 16 bits are used to specify texture coordinate index, to take the WRAP mode from -// -const D3DTSS_TCI_PASSTHRU = 0x00000000; -const D3DTSS_TCI_CAMERASPACENORMAL = 0x00010000; -const D3DTSS_TCI_CAMERASPACEPOSITION = 0x00020000; -const D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR = 0x00030000; -const D3DTSS_TCI_SPHEREMAP = 0x00040000; - -/* - * Enumerations for COLOROP and ALPHAOP texture blending operations set in - * texture processing stage controls in D3DTSS. - */ -enum : D3DTEXTUREOP { - // Control - D3DTOP_DISABLE = 1, // disables stage - D3DTOP_SELECTARG1 = 2, // the default - D3DTOP_SELECTARG2 = 3, - - // Modulate - D3DTOP_MODULATE = 4, // multiply args together - D3DTOP_MODULATE2X = 5, // multiply and 1 bit - D3DTOP_MODULATE4X = 6, // multiply and 2 bits - - // Add - D3DTOP_ADD = 7, // add arguments together - D3DTOP_ADDSIGNED = 8, // add with -0.5 bias - D3DTOP_ADDSIGNED2X = 9, // as above but left 1 bit - D3DTOP_SUBTRACT = 10, // Arg1 - Arg2, with no saturation - D3DTOP_ADDSMOOTH = 11, // add 2 args, subtract product - // Arg1 + Arg2 - Arg1*Arg2 - // = Arg1 + (1-Arg1)*Arg2 - - // Linear alpha blend: Arg1*(Alpha) + Arg2*(1-Alpha) - D3DTOP_BLENDDIFFUSEALPHA = 12, // iterated alpha - D3DTOP_BLENDTEXTUREALPHA = 13, // texture alpha - D3DTOP_BLENDFACTORALPHA = 14, // alpha from D3DRS_TEXTUREFACTOR - - // Linear alpha blend with pre-multiplied arg1 input: Arg1 + Arg2*(1-Alpha) - D3DTOP_BLENDTEXTUREALPHAPM = 15, // texture alpha - D3DTOP_BLENDCURRENTALPHA = 16, // by alpha of current color - - // Specular mapping - D3DTOP_PREMODULATE = 17, // modulate with next texture before use - D3DTOP_MODULATEALPHA_ADDCOLOR = 18, // Arg1.RGB + Arg1.A*Arg2.RGB - // COLOROP only - D3DTOP_MODULATECOLOR_ADDALPHA = 19, // Arg1.RGB*Arg2.RGB + Arg1.A - // COLOROP only - D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20, // (1-Arg1.A)*Arg2.RGB + Arg1.RGB - // COLOROP only - D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21, // (1-Arg1.RGB)*Arg2.RGB + Arg1.A - // COLOROP only - - // Bump mapping - D3DTOP_BUMPENVMAP = 22, // per pixel env map perturbation - D3DTOP_BUMPENVMAPLUMINANCE = 23, // with luminance channel - - // This can do either diffuse or specular bump mapping with correct input. - // Performs the function (Arg1.R*Arg2.R + Arg1.G*Arg2.G + Arg1.B*Arg2.B) - // where each component has been scaled and offset to make it signed. - // The result is replicated into all four (including alpha) channels. - // This is a valid COLOROP only. - D3DTOP_DOTPRODUCT3 = 24, - - // Triadic ops - D3DTOP_MULTIPLYADD = 25, // Arg0 + Arg1*Arg2 - D3DTOP_LERP = 26 // (Arg0)*Arg1 + (1-Arg0)*Arg2 -} -alias TypeDef!(uint) D3DTEXTUREOP; - -/* - * Values for COLORARG0,1,2, ALPHAARG0,1,2, and RESULTARG texture blending - * operations set in texture processing stage controls in D3DRENDERSTATE. - */ -const D3DTA_SELECTMASK = 0x0000000f; // mask for arg selector -const D3DTA_DIFFUSE = 0x00000000; // select diffuse color (read only) -const D3DTA_CURRENT = 0x00000001; // select stage destination register (read/write) -const D3DTA_TEXTURE = 0x00000002; // select texture color (read only) -const D3DTA_TFACTOR = 0x00000003; // select D3DRS_TEXTUREFACTOR (read only) -const D3DTA_SPECULAR = 0x00000004; // select specular color (read only) -const D3DTA_TEMP = 0x00000005; // select temporary register color (read/write) -const D3DTA_CONSTANT = 0x00000006; // select texture stage constant -const D3DTA_COMPLEMENT = 0x00000010; // take 1.0 - x (read modifier) -const D3DTA_ALPHAREPLICATE = 0x00000020; // replicate alpha to color components (read modifier) - -// -// Values for D3DSAMP_***FILTER texture stage states -// -enum : D3DTEXTUREFILTERTYPE { - D3DTEXF_NONE = 0, // filtering disabled (valid for mip filter only) - D3DTEXF_POINT = 1, // nearest - D3DTEXF_LINEAR = 2, // linear interpolation - D3DTEXF_ANISOTROPIC = 3, // anisotropic - D3DTEXF_PYRAMIDALQUAD = 6, // 4-sample tent - D3DTEXF_GAUSSIANQUAD = 7, // 4-sample gaussian - D3DTEXF_CONVOLUTIONMONO = 8 // Convolution filter for monochrome textures -} -alias TypeDef!(uint) D3DTEXTUREFILTERTYPE; - -/* Bits for Flags in ProcessVertices call */ - -const D3DPV_DONOTCOPYDATA = (1 << 0); - -//------------------------------------------------------------------- - -// Flexible vertex format bits -// -const D3DFVF_RESERVED0 = 0x001; -const D3DFVF_POSITION_MASK = 0x400E; -const D3DFVF_XYZ = 0x002; -const D3DFVF_XYZRHW = 0x004; -const D3DFVF_XYZB1 = 0x006; -const D3DFVF_XYZB2 = 0x008; -const D3DFVF_XYZB3 = 0x00a; -const D3DFVF_XYZB4 = 0x00c; -const D3DFVF_XYZB5 = 0x00e; -const D3DFVF_XYZW = 0x4002; - -const D3DFVF_NORMAL = 0x010; -const D3DFVF_PSIZE = 0x020; -const D3DFVF_DIFFUSE = 0x040; -const D3DFVF_SPECULAR = 0x080; - -const D3DFVF_TEXCOUNT_MASK = 0xf00; -const D3DFVF_TEXCOUNT_SHIFT = 8; -const D3DFVF_TEX0 = 0x000; -const D3DFVF_TEX1 = 0x100; -const D3DFVF_TEX2 = 0x200; -const D3DFVF_TEX3 = 0x300; -const D3DFVF_TEX4 = 0x400; -const D3DFVF_TEX5 = 0x500; -const D3DFVF_TEX6 = 0x600; -const D3DFVF_TEX7 = 0x700; -const D3DFVF_TEX8 = 0x800; - -const D3DFVF_LASTBETA_UBYTE4 = 0x1000; -const D3DFVF_LASTBETA_D3DCOLOR = 0x8000; - -const D3DFVF_RESERVED2 = 0x6000; // 2 reserved bits - -//--------------------------------------------------------------------- -// Vertex Shaders -// - -// Vertex shader declaration - -// Vertex element semantics -// -enum : D3DDECLUSAGE { - D3DDECLUSAGE_POSITION = 0, - D3DDECLUSAGE_BLENDWEIGHT, // 1 - D3DDECLUSAGE_BLENDINDICES, // 2 - D3DDECLUSAGE_NORMAL, // 3 - D3DDECLUSAGE_PSIZE, // 4 - D3DDECLUSAGE_TEXCOORD, // 5 - D3DDECLUSAGE_TANGENT, // 6 - D3DDECLUSAGE_BINORMAL, // 7 - D3DDECLUSAGE_TESSFACTOR, // 8 - D3DDECLUSAGE_POSITIONT, // 9 - D3DDECLUSAGE_COLOR, // 10 - D3DDECLUSAGE_FOG, // 11 - D3DDECLUSAGE_DEPTH, // 12 - D3DDECLUSAGE_SAMPLE // 13 -} -alias TypeDef!(uint) D3DDECLUSAGE; - -const MAXD3DDECLUSAGE = D3DDECLUSAGE_SAMPLE; -const MAXD3DDECLUSAGEINDEX = 15; -const MAXD3DDECLLENGTH = 64; // does not include "end" marker vertex element - -enum : D3DDECLMETHOD { - D3DDECLMETHOD_DEFAULT = 0, - D3DDECLMETHOD_PARTIALU, - D3DDECLMETHOD_PARTIALV, - D3DDECLMETHOD_CROSSUV, // Normal - D3DDECLMETHOD_UV, - D3DDECLMETHOD_LOOKUP, // Lookup a displacement map - D3DDECLMETHOD_LOOKUPPRESAMPLED // Lookup a pre-sampled displacement map -} -alias TypeDef!(uint) D3DDECLMETHOD; - -const MAXD3DDECLMETHOD = D3DDECLMETHOD_LOOKUPPRESAMPLED; - -// Declarations for _Type fields -// -enum : D3DDECLTYPE { - D3DDECLTYPE_FLOAT1 = 0, // 1D float expanded to (value, 0., 0., 1.) - D3DDECLTYPE_FLOAT2 = 1, // 2D float expanded to (value, value, 0., 1.) - D3DDECLTYPE_FLOAT3 = 2, // 3D float expanded to (value, value, value, 1.) - D3DDECLTYPE_FLOAT4 = 3, // 4D float - D3DDECLTYPE_D3DCOLOR = 4, // 4D packed unsigned bytes mapped to 0. to 1. range - // Input is in D3DCOLOR format (ARGB) expanded to (R, G, B, A) - D3DDECLTYPE_UBYTE4 = 5, // 4D unsigned byte - D3DDECLTYPE_SHORT2 = 6, // 2D signed short expanded to (value, value, 0., 1.) - D3DDECLTYPE_SHORT4 = 7, // 4D signed short - -// The following types are valid only with vertex shaders >= 2.0 - - - D3DDECLTYPE_UBYTE4N = 8, // Each of 4 bytes is normalized by dividing to 255.0 - D3DDECLTYPE_SHORT2N = 9, // 2D signed short normalized (v[0]/32767.0,v[1]/32767.0,0,1) - D3DDECLTYPE_SHORT4N = 10, // 4D signed short normalized (v[0]/32767.0,v[1]/32767.0,v[2]/32767.0,v[3]/32767.0) - D3DDECLTYPE_USHORT2N = 11, // 2D unsigned short normalized (v[0]/65535.0,v[1]/65535.0,0,1) - D3DDECLTYPE_USHORT4N = 12, // 4D unsigned short normalized (v[0]/65535.0,v[1]/65535.0,v[2]/65535.0,v[3]/65535.0) - D3DDECLTYPE_UDEC3 = 13, // 3D unsigned 10 10 10 format expanded to (value, value, value, 1) - D3DDECLTYPE_DEC3N = 14, // 3D signed 10 10 10 format normalized and expanded to (v[0]/511.0, v[1]/511.0, v[2]/511.0, 1) - D3DDECLTYPE_FLOAT16_2 = 15, // Two 16-bit floating point values, expanded to (value, value, 0, 1) - D3DDECLTYPE_FLOAT16_4 = 16, // Four 16-bit floating point values - D3DDECLTYPE_UNUSED = 17 // When the type field in a decl is unused. -} -alias TypeDef!(uint) D3DDECLTYPE; - -const MAXD3DDECLTYPE = D3DDECLTYPE_UNUSED; - -struct D3DVERTEXELEMENT9 -{ - ushort Stream; // Stream index - ushort Offset; // Offset in the stream in bytes - ubyte Type; // Data type - ubyte Method; // Processing method - ubyte Usage; // Semantics - ubyte UsageIndex; // Semantic index -} -alias D3DVERTEXELEMENT9 *LPD3DVERTEXELEMENT9; - -// This is used to initialize the last vertex element in a vertex declaration -// array -// -template D3DDECL_END() { - static const D3DVERTEXELEMENT9 D3DDECL_END = { 0xFF,0,D3DDECLTYPE_UNUSED,0,0,0 }; -} - -// Maximum supported number of texture coordinate sets -const D3DDP_MAXTEXCOORD = 8; - -//--------------------------------------------------------------------- -// Values for IDirect3DDevice9::SetStreamSourceFreq's Setting parameter -//--------------------------------------------------------------------- -const D3DSTREAMSOURCE_INDEXEDDATA = (1<<30); -const D3DSTREAMSOURCE_INSTANCEDATA = (2<<30); - - - -//--------------------------------------------------------------------- -// -// The internal format of Pixel Shader (PS) & Vertex Shader (VS) -// Instruction Tokens is defined in the Direct3D Device Driver Kit -// -//--------------------------------------------------------------------- - -// -// Instruction Token Bit Definitions -// -const D3DSI_OPCODE_MASK = 0x0000FFFF; - -const D3DSI_INSTLENGTH_MASK = 0x0F000000; -const D3DSI_INSTLENGTH_SHIFT = 24; - -enum : D3DSHADER_INSTRUCTION_OPCODE_TYPE { - D3DSIO_NOP = 0, - D3DSIO_MOV , - D3DSIO_ADD , - D3DSIO_SUB , - D3DSIO_MAD , - D3DSIO_MUL , - D3DSIO_RCP , - D3DSIO_RSQ , - D3DSIO_DP3 , - D3DSIO_DP4 , - D3DSIO_MIN , - D3DSIO_MAX , - D3DSIO_SLT , - D3DSIO_SGE , - D3DSIO_EXP , - D3DSIO_LOG , - D3DSIO_LIT , - D3DSIO_DST , - D3DSIO_LRP , - D3DSIO_FRC , - D3DSIO_M4x4 , - D3DSIO_M4x3 , - D3DSIO_M3x4 , - D3DSIO_M3x3 , - D3DSIO_M3x2 , - D3DSIO_CALL , - D3DSIO_CALLNZ , - D3DSIO_LOOP , - D3DSIO_RET , - D3DSIO_ENDLOOP , - D3DSIO_LABEL , - D3DSIO_DCL , - D3DSIO_POW , - D3DSIO_CRS , - D3DSIO_SGN , - D3DSIO_ABS , - D3DSIO_NRM , - D3DSIO_SINCOS , - D3DSIO_REP , - D3DSIO_ENDREP , - D3DSIO_IF , - D3DSIO_IFC , - D3DSIO_ELSE , - D3DSIO_ENDIF , - D3DSIO_BREAK , - D3DSIO_BREAKC , - D3DSIO_MOVA , - D3DSIO_DEFB , - D3DSIO_DEFI , - - D3DSIO_TEXCOORD = 64, - D3DSIO_TEXKILL , - D3DSIO_TEX , - D3DSIO_TEXBEM , - D3DSIO_TEXBEML , - D3DSIO_TEXREG2AR , - D3DSIO_TEXREG2GB , - D3DSIO_TEXM3x2PAD , - D3DSIO_TEXM3x2TEX , - D3DSIO_TEXM3x3PAD , - D3DSIO_TEXM3x3TEX , - D3DSIO_RESERVED0 , - D3DSIO_TEXM3x3SPEC , - D3DSIO_TEXM3x3VSPEC , - D3DSIO_EXPP , - D3DSIO_LOGP , - D3DSIO_CND , - D3DSIO_DEF , - D3DSIO_TEXREG2RGB , - D3DSIO_TEXDP3TEX , - D3DSIO_TEXM3x2DEPTH , - D3DSIO_TEXDP3 , - D3DSIO_TEXM3x3 , - D3DSIO_TEXDEPTH , - D3DSIO_CMP , - D3DSIO_BEM , - D3DSIO_DP2ADD , - D3DSIO_DSX , - D3DSIO_DSY , - D3DSIO_TEXLDD , - D3DSIO_SETP , - D3DSIO_TEXLDL , - D3DSIO_BREAKP , - - D3DSIO_PHASE = 0xFFFD, - D3DSIO_COMMENT = 0xFFFE, - D3DSIO_END = 0xFFFF -} -alias TypeDef!(uint) D3DSHADER_INSTRUCTION_OPCODE_TYPE; - -//--------------------------------------------------------------------- -// Use these constants with D3DSIO_SINCOS macro as SRC2, SRC3 -// -const float[4] D3DSINCOSCONST1 = [-1.5500992e-006f, -2.1701389e-005f, 0.0026041667f, 0.00026041668f]; -const float[4] D3DSINCOSCONST2 = [-0.020833334f, -0.12500000f, 1.0f, 0.50000000f]; - -//--------------------------------------------------------------------- -// Co-Issue Instruction Modifier - if set then this instruction is to be -// issued in parallel with the previous instruction(s) for which this bit -// is not set. -// -const D3DSI_COISSUE = 0x40000000; - -//--------------------------------------------------------------------- -// Opcode specific controls - -const D3DSP_OPCODESPECIFICCONTROL_MASK = 0x00ff0000; -const D3DSP_OPCODESPECIFICCONTROL_SHIFT = 16; - -// ps_2_0 texld controls -const D3DSI_TEXLD_PROJECT = (0x01 << D3DSP_OPCODESPECIFICCONTROL_SHIFT); -const D3DSI_TEXLD_BIAS = (0x02 << D3DSP_OPCODESPECIFICCONTROL_SHIFT); - -// Comparison for dynamic conditional instruction opcodes (i.e. if, breakc) -enum : D3DSHADER_COMPARISON { - // < = > - D3DSPC_RESERVED0= 0, // 0 0 0 - D3DSPC_GT = 1, // 0 0 1 - D3DSPC_EQ = 2, // 0 1 0 - D3DSPC_GE = 3, // 0 1 1 - D3DSPC_LT = 4, // 1 0 0 - D3DSPC_NE = 5, // 1 0 1 - D3DSPC_LE = 6, // 1 1 0 - D3DSPC_RESERVED1= 7 // 1 1 1 -} -alias TypeDef!(uint) D3DSHADER_COMPARISON; - -// Comparison is part of instruction opcode token: -const D3DSHADER_COMPARISON_SHIFT = D3DSP_OPCODESPECIFICCONTROL_SHIFT; -const D3DSHADER_COMPARISON_MASK = (0x7<>8)&0xFF); } -ubyte D3DSHADER_VERSION_MINOR(uint _Version) { return cast(ubyte)((_Version>>0)&0xFF); } - -// destination/source parameter register type -const D3DSI_COMMENTSIZE_SHIFT = 16; -const D3DSI_COMMENTSIZE_MASK = 0x7FFF0000; -uint D3DSHADER_COMMENT(ushort _DWordSize) { return (((_DWordSize< pV2.x ? pV1.x : pV2.x; - pOut.y = pV1.y > pV2.y ? pV1.y : pV2.y; - return pOut; -} - -D3DXVECTOR2* D3DXVec2Scale(D3DXVECTOR2* pOut, D3DXVECTOR2* pV, float s) { - debug(D3DX10_DEBUG) { - if ((pOut is null) || (pV is null)) return null; - } - pOut.x = pV.x * s; - pOut.y = pV.y * s; - return pOut; -} - -D3DXVECTOR2* D3DXVec2Lerp(D3DXVECTOR2* pOut, D3DXVECTOR2* pV1, D3DXVECTOR2* pV2, float s) { - debug(D3DX10_DEBUG) { - if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; - } - pOut.x = pV1.x + s * (pV2.x - pV1.x); - pOut.y = pV1.y + s * (pV2.y - pV1.y); - return pOut; -} - -extern(Windows) { - D3DXVECTOR2* D3DXVec2Normalize(D3DXVECTOR2* pOut, D3DXVECTOR2* pV); - D3DXVECTOR2* D3DXVec2Hermite(D3DXVECTOR2* pOut, D3DXVECTOR2* pV1, D3DXVECTOR2* pT1, D3DXVECTOR2* pV2, D3DXVECTOR2* pT2, float s); - D3DXVECTOR2* D3DXVec2CatmullRom(D3DXVECTOR2* pOut, D3DXVECTOR2* pV0, D3DXVECTOR2* pV1, D3DXVECTOR2* pV2, D3DXVECTOR2* pV3, float s); - D3DXVECTOR2* D3DXVec2BaryCentric(D3DXVECTOR2* pOut, D3DXVECTOR2* pV1, D3DXVECTOR2* pV2, D3DXVECTOR2* pV3, float f, float g); - D3DXVECTOR4* D3DXVec2Transform(D3DXVECTOR4* pOut, D3DXVECTOR2* pV, D3DXMATRIX* pM); - D3DXVECTOR2* D3DXVec2TransformCoord(D3DXVECTOR2* pOut, D3DXVECTOR2* pV, D3DXMATRIX* pM); - D3DXVECTOR2* D3DXVec2TransformNormal(D3DXVECTOR2* pOut, D3DXVECTOR2* pV, D3DXMATRIX* pM); - D3DXVECTOR4* D3DXVec2TransformArray(D3DXVECTOR4* pOut, UINT OutStride, D3DXVECTOR2* pV, UINT VStride, D3DXMATRIX* pM, UINT n); - D3DXVECTOR2* D3DXVec2TransformCoordArray(D3DXVECTOR2* pOut, UINT OutStride, D3DXVECTOR2* pV, UINT VStride, D3DXMATRIX* pM, UINT n); - D3DXVECTOR2* D3DXVec2TransformNormalArray(D3DXVECTOR2* pOut, UINT OutStride, D3DXVECTOR2* pV, UINT VStride, D3DXMATRIX* pM, UINT n); -} - -float D3DXVec3Length(D3DXVECTOR3* pV) { - debug(D3DX10_DEBUG) { - if (pV is null) return 0.0; - } - return sqrtf((pV.x * pV.x) + (pV.y * pV.y) + (pV.z * pV.z)); -} - -float D3DXVec3LengthSq(D3DXVECTOR3* pV) { - debug(D3DX10_DEBUG) { - if (pV is null) return 0.0; - } - return (pV.x * pV.x) + (pV.y * pV.y) + (pV.z * pV.z); -} - -float D3DXVec3Dot(D3DXVECTOR3* pV1, D3DXVECTOR3* pV2) { - debug(D3DX10_DEBUG) { - if ((pV1 is null) || (pV2 is null)) return 0.0; - } - return (pV1.x * pV2.x) + (pV1.y * pV2.y) + (pV1.z * pV2.z); -} - -D3DXVECTOR3* D3DXVec3Cross(D3DXVECTOR3* pOut, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2) { - debug(D3DX10_DEBUG) { - if ((pOut is null) || (pV1 is null) || (pV2 is null)) return 0.0; - } - D3DXVECTOR3 v; - v.x = (pV1.y * pV2.z) - (pV1.z * pV2.y); - v.y = (pV1.z * pV2.x) - (pV1.x * pV2.z); - v.z = (pV1.x * pV2.y) - (pV1.y * pV2.x); - *pOut = v; - return pOut; -} - -D3DXVECTOR3* D3DXVec3Add(D3DXVECTOR3* pOut, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2) { - debug(D3DX10_DEBUG) { - if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; - } - pOut.x = pV1.x + pV2.x; - pOut.y = pV1.y + pV2.y; - pOut.z = pV1.z + pV2.z; - return pOut; -} - -D3DXVECTOR3* D3DXVec3Subtract(D3DXVECTOR3* pOut, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2) { - debug(D3DX10_DEBUG) { - if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; - } - pOut.x = pV1.x - pV2.x; - pOut.y = pV1.y - pV2.y; - pOut.z = pV1.z - pV2.z; - return pOut; -} - -D3DXVECTOR3* D3DXVec3Minimize(D3DXVECTOR3* pOut, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2) { - debug(D3DX10_DEBUG) { - if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; - } - pOut.x = pV1.x < pV2.x ? pV1.x : pV2.x; - pOut.y = pV1.y < pV2.y ? pV1.y : pV2.y; - pOut.z = pV1.z < pV2.z ? pV1.z : pV2.z; - return pOut; -} - -D3DXVECTOR3* D3DXVec3Maximize(D3DXVECTOR3* pOut, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2) { - debug(D3DX10_DEBUG) { - if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; - } - pOut.x = pV1.x > pV2.x ? pV1.x : pV2.x; - pOut.y = pV1.y > pV2.y ? pV1.y : pV2.y; - pOut.z = pV1.z > pV2.z ? pV1.z : pV2.z; - return pOut; -} - -D3DXVECTOR3* D3DXVec3Scale(D3DXVECTOR3* pOut, D3DXVECTOR3* pV, float s) { - debug(D3DX10_DEBUG) { - if ((pOut is null) || (pV is null)) return null; - } - pOut.x = pV.x * s; - pOut.y = pV.y * s; - pOut.z = pV.z * s; - return pOut; -} - -D3DXVECTOR3* D3DXVec3Lerp(D3DXVECTOR3* pOut, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2, float s) { - debug(D3DX10_DEBUG) { - if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; - } - pOut.x = pV1.x + s * (pV2.x - pV1.x); - pOut.y = pV1.y + s * (pV2.y - pV1.y); - pOut.z = pV1.z + s * (pV2.z - pV1.z); - return pOut; -} - -extern(Windows) { - D3DXVECTOR3* D3DXVec3Normalize(D3DXVECTOR3* pOut, D3DXVECTOR3* pV); - D3DXVECTOR3* D3DXVec3Hermite(D3DXVECTOR3* pOut, D3DXVECTOR3* pV1, D3DXVECTOR3* pT1, D3DXVECTOR3* pV2, D3DXVECTOR3* pT2, FLOAT s); - D3DXVECTOR3* D3DXVec3CatmullRom(D3DXVECTOR3* pOut, D3DXVECTOR3* pV0, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2, D3DXVECTOR3* pV3, FLOAT s); - D3DXVECTOR3* D3DXVec3BaryCentric(D3DXVECTOR3* pOut, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2, D3DXVECTOR3* pV3, FLOAT f, FLOAT g); - D3DXVECTOR4* D3DXVec3Transform(D3DXVECTOR4* pOut, D3DXVECTOR3* pV, D3DXMATRIX* pM); - D3DXVECTOR3* D3DXVec3TransformCoord(D3DXVECTOR3* pOut, D3DXVECTOR3* pV, D3DXMATRIX* pM); - D3DXVECTOR3* D3DXVec3TransformNormal(D3DXVECTOR3* pOut, D3DXVECTOR3* pV, D3DXMATRIX* pM); - D3DXVECTOR4* D3DXVec3TransformArray(D3DXVECTOR4* pOut, UINT OutStride, D3DXVECTOR3* pV, UINT VStride, D3DXMATRIX* pM, UINT n); - D3DXVECTOR3* D3DXVec3TransformCoordArray(D3DXVECTOR3* pOut, UINT OutStride, D3DXVECTOR3* pV, UINT VStride, D3DXMATRIX* pM, UINT n); - D3DXVECTOR3* D3DXVec3TransformNormalArray(D3DXVECTOR3* pOut, UINT OutStride, D3DXVECTOR3* pV, UINT VStride, D3DXMATRIX* pM, UINT n); - D3DXVECTOR3* D3DXVec3Project(D3DXVECTOR3* pOut, D3DXVECTOR3* pV, D3D10_VIEWPORT* pViewport, D3DXMATRIX* pProjection, D3DXMATRIX* pView, D3DXMATRIX* pWorld); - D3DXVECTOR3* D3DXVec3Unproject(D3DXVECTOR3* pOut, D3DXVECTOR3* pV, D3D10_VIEWPORT* pViewport, D3DXMATRIX* pProjection, D3DXMATRIX* pView, D3DXMATRIX* pWorld); - D3DXVECTOR3* D3DXVec3ProjectArray(D3DXVECTOR3* pOut, UINT OutStride,D3DXVECTOR3* pV, UINT VStride,D3D10_VIEWPORT* pViewport, D3DXMATRIX* pProjection, D3DXMATRIX* pView, D3DXMATRIX* pWorld, UINT n); - D3DXVECTOR3* D3DXVec3UnprojectArray(D3DXVECTOR3* pOut, UINT OutStride, D3DXVECTOR3* pV, UINT VStride, D3D10_VIEWPORT* pViewport, D3DXMATRIX* pProjection, D3DXMATRIX* pView, D3DXMATRIX* pWorld, UINT n); -} - -float D3DXVec4Length(D3DXVECTOR4* pV) { - debug(D3DX10_DEBUG) { - if (pV is null) return 0.0; - } - return sqrtf((pV.x * pV.x) + (pV.y * pV.y) + (pV.z * pV.z) + (pV.w * pV.w)); -} - -float D3DXVec4LengthSq(D3DXVECTOR4* pV) { - debug(D3DX10_DEBUG) { - if (pV is null) return 0.0; - } - return (pV.x * pV.x) + (pV.y * pV.y) + (pV.z * pV.z) + (pV.w * pV.w); -} - -float D3DXVec4Dot(D3DXVECTOR4* pV1, D3DXVECTOR4* pV2) { - debug(D3DX10_DEBUG) { - if ((pV1 is null) || (pV2 is null)) return 0.0; - } - return (pV1.x * pV2.x) + (pV1.y * pV2.y) + (pV1.z * pV2.z) + (pV1.w * pV2.w); -} - -D3DXVECTOR4* D3DXVec4Add(D3DXVECTOR4* pOut, D3DXVECTOR4* pV1, D3DXVECTOR4* pV2) { - debug(D3DX10_DEBUG) { - if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; - } - pOut.x = pV1.x + pV2.x; - pOut.y = pV1.y + pV2.y; - pOut.z = pV1.z + pV2.z; - pOut.w = pV1.w + pV2.w; - return pOut; -} - -D3DXVECTOR4* D3DXVec4Subtract(D3DXVECTOR4* pOut, D3DXVECTOR4* pV1, D3DXVECTOR4* pV2) { - debug(D3DX10_DEBUG) { - if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; - } - pOut.x = pV1.x - pV2.x; - pOut.y = pV1.y - pV2.y; - pOut.z = pV1.z - pV2.z; - pOut.w = pV1.w - pV2.w; - return pOut; -} - -D3DXVECTOR4* D3DXVec4Minimize(D3DXVECTOR4* pOut, D3DXVECTOR4* pV1, D3DXVECTOR4* pV2) { - debug(D3DX10_DEBUG) { - if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; - } - pOut.x = pV1.x < pV2.x ? pV1.x : pV2.x; - pOut.y = pV1.y < pV2.y ? pV1.y : pV2.y; - pOut.z = pV1.z < pV2.z ? pV1.z : pV2.z; - pOut.w = pV1.w < pV2.w ? pV1.w : pV2.w; - return pOut; -} - -D3DXVECTOR4* D3DXVec4Maximize(D3DXVECTOR4* pOut, D3DXVECTOR4* pV1, D3DXVECTOR4* pV2) { - debug(D3DX10_DEBUG) { - if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; - } - pOut.x = pV1.x > pV2.x ? pV1.x : pV2.x; - pOut.y = pV1.y > pV2.y ? pV1.y : pV2.y; - pOut.z = pV1.z > pV2.z ? pV1.z : pV2.z; - pOut.w = pV1.w > pV2.w ? pV1.w : pV2.w; - return pOut; -} - -D3DXVECTOR4* D3DXVec4Scale(D3DXVECTOR4* pOut, D3DXVECTOR4* pV, float s) { - debug(D3DX10_DEBUG) { - if ((pOut is null) || (pV is null)) return null; - } - pOut.x = pV.x * s; - pOut.y = pV.y * s; - pOut.z = pV.z * s; - pOut.w = pV.w * s; - return pOut; -} - -D3DXVECTOR4* D3DXVec4Lerp(D3DXVECTOR4* pOut, D3DXVECTOR4* pV1, D3DXVECTOR4* pV2, float s) { - debug(D3DX10_DEBUG) { - if ((pOut is null) || (pV1 is null) || (pV2 is null)) return null; - } - pOut.x = pV1.x + s * (pV2.x - pV1.x); - pOut.y = pV1.y + s * (pV2.y - pV1.y); - pOut.z = pV1.z + s * (pV2.z - pV1.z); - pOut.w = pV1.w + s * (pV2.w - pV1.w); - return pOut; -} - -extern(Windows) { - D3DXVECTOR4* D3DXVec4Cross(D3DXVECTOR4* pOut, D3DXVECTOR4* pV1, D3DXVECTOR4* pV2, D3DXVECTOR4* pV3); - D3DXVECTOR4* D3DXVec4Normalize(D3DXVECTOR4* pOut, D3DXVECTOR4* pV); - D3DXVECTOR4* D3DXVec4Hermite(D3DXVECTOR4* pOut, D3DXVECTOR4* pV1, D3DXVECTOR4* pT1, D3DXVECTOR4* pV2, D3DXVECTOR4* pT2, FLOAT s); - D3DXVECTOR4* D3DXVec4CatmullRom(D3DXVECTOR4* pOut, D3DXVECTOR4* pV0, D3DXVECTOR4* pV1, D3DXVECTOR4* pV2, D3DXVECTOR4* pV3, FLOAT s); - D3DXVECTOR4* D3DXVec4BaryCentric(D3DXVECTOR4* pOut, D3DXVECTOR4* pV1, D3DXVECTOR4* pV2, D3DXVECTOR4* pV3, FLOAT f, FLOAT g); - D3DXVECTOR4* D3DXVec4Transform(D3DXVECTOR4* pOut, D3DXVECTOR4* pV, D3DXMATRIX* pM); - D3DXVECTOR4* D3DXVec4TransformArray(D3DXVECTOR4* pOut, UINT OutStride, D3DXVECTOR4* pV, UINT VStride, D3DXMATRIX* pM, UINT n); -} - -D3DXMATRIX* D3DXMatrixIdentity(D3DXMATRIX *pOut) { - debug(D3DX10_DEBUG) { - if (pOut is null) return NULL; - } - pOut.m[0][1] = pOut.m[0][2] = pOut.m[0][3] = - pOut.m[1][0] = pOut.m[1][2] = pOut.m[1][3] = - pOut.m[2][0] = pOut.m[2][1] = pOut.m[2][3] = - pOut.m[3][0] = pOut.m[3][1] = pOut.m[3][2] = 0.0; - pOut.m[0][0] = pOut.m[1][1] = pOut.m[2][2] = pOut.m[3][3] = 1.0; - return pOut; -} - - -BOOL D3DXMatrixIsIdentity(D3DXMATRIX *pM) { - debug(D3DX10_DEBUG) { - if(pM is null) return FALSE; - } - return (pM.m[0][0] == 1.0f) && (pM.m[0][1] == 0.0f) && (pM.m[0][2] == 0.0f) && (pM.m[0][3] == 0.0f) && - (pM.m[1][0] == 0.0f) && (pM.m[1][1] == 1.0f) && (pM.m[1][2] == 0.0f) && (pM.m[1][3] == 0.0f) && - (pM.m[2][0] == 0.0f) && (pM.m[2][1] == 0.0f) && (pM.m[2][2] == 1.0f) && (pM.m[2][3] == 0.0f) && - (pM.m[3][0] == 0.0f) && (pM.m[3][1] == 0.0f) && (pM.m[3][2] == 0.0f) && (pM.m[3][3] == 1.0f); -} - -extern(Windows) { - FLOAT D3DXMatrixDeterminant(D3DXMATRIX* pM); - HRESULT D3DXMatrixDecompose(D3DXVECTOR3* pOutScale, D3DXQUATERNION* pOutRotation, D3DXVECTOR3* pOutTranslation, D3DXMATRIX* pM); - D3DXMATRIX* D3DXMatrixTranspose(D3DXMATRIX* pOut, D3DXMATRIX* pM); - D3DXMATRIX* D3DXMatrixMultiply(D3DXMATRIX* pOut, D3DXMATRIX* pM1, D3DXMATRIX* pM2); - D3DXMATRIX* D3DXMatrixMultiplyTranspose(D3DXMATRIX* pOut, D3DXMATRIX* pM1, D3DXMATRIX* pM2); - D3DXMATRIX* D3DXMatrixInverse(D3DXMATRIX* pOut, FLOAT* pDeterminant, D3DXMATRIX* pM); - D3DXMATRIX* D3DXMatrixScaling(D3DXMATRIX* pOut, FLOAT sx, FLOAT sy, FLOAT sz); - D3DXMATRIX* D3DXMatrixTranslation(D3DXMATRIX* pOut, FLOAT x, FLOAT y, FLOAT z); - D3DXMATRIX* D3DXMatrixRotationX(D3DXMATRIX* pOut, FLOAT Angle); - D3DXMATRIX* D3DXMatrixRotationY(D3DXMATRIX* pOut, FLOAT Angle); - D3DXMATRIX* D3DXMatrixRotationZ(D3DXMATRIX* pOut, FLOAT Angle); - D3DXMATRIX* D3DXMatrixRotationAxis(D3DXMATRIX* pOut, D3DXVECTOR3* pV, FLOAT Angle); - D3DXMATRIX* D3DXMatrixRotationQuaternion(D3DXMATRIX* pOut, D3DXQUATERNION* pQ); - D3DXMATRIX* D3DXMatrixRotationYawPitchRoll(D3DXMATRIX* pOut, FLOAT Yaw, FLOAT Pitch, FLOAT Roll); - D3DXMATRIX* D3DXMatrixTransformation(D3DXMATRIX* pOut, D3DXVECTOR3* pScalingCenter, D3DXQUATERNION* pScalingRotation, D3DXVECTOR3* pScaling, D3DXVECTOR3* pRotationCenter, D3DXQUATERNION* pRotation, D3DXVECTOR3* pTranslation); - D3DXMATRIX* D3DXMatrixTransformation2D(D3DXMATRIX* pOut, D3DXVECTOR2* pScalingCenter, FLOAT ScalingRotation, D3DXVECTOR2* pScaling, D3DXVECTOR2* pRotationCenter, FLOAT Rotation, D3DXVECTOR2* pTranslation); - D3DXMATRIX* D3DXMatrixAffineTransformation(D3DXMATRIX* pOut, FLOAT Scaling, D3DXVECTOR3* pRotationCenter, D3DXQUATERNION* pRotation, D3DXVECTOR3* pTranslation); - D3DXMATRIX* D3DXMatrixAffineTransformation2D(D3DXMATRIX* pOut, FLOAT Scaling, D3DXVECTOR2* pRotationCenter, FLOAT Rotation, D3DXVECTOR2* pTranslation); - D3DXMATRIX* D3DXMatrixLookAtRH(D3DXMATRIX* pOut, D3DXVECTOR3* pEye, D3DXVECTOR3* pAt, D3DXVECTOR3* pUp); - D3DXMATRIX* D3DXMatrixLookAtLH(D3DXMATRIX* pOut, D3DXVECTOR3* pEye, D3DXVECTOR3* pAt, D3DXVECTOR3* pUp); - D3DXMATRIX* D3DXMatrixPerspectiveRH(D3DXMATRIX* pOut, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf); - D3DXMATRIX* D3DXMatrixPerspectiveLH(D3DXMATRIX* pOut, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf); - D3DXMATRIX* D3DXMatrixPerspectiveFovRH(D3DXMATRIX* pOut, FLOAT fovy, FLOAT Aspect, FLOAT zn, FLOAT zf); - D3DXMATRIX* D3DXMatrixPerspectiveFovLH(D3DXMATRIX* pOut, FLOAT fovy, FLOAT Aspect, FLOAT zn, FLOAT zf); - D3DXMATRIX* D3DXMatrixPerspectiveOffCenterRH(D3DXMATRIX* pOut, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf); - D3DXMATRIX* D3DXMatrixPerspectiveOffCenterLH(D3DXMATRIX* pOut, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf); - D3DXMATRIX* D3DXMatrixOrthoRH(D3DXMATRIX* pOut, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf); - D3DXMATRIX* D3DXMatrixOrthoLH(D3DXMATRIX* pOut, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf); - D3DXMATRIX* D3DXMatrixOrthoOffCenterRH(D3DXMATRIX* pOut, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf); - D3DXMATRIX* D3DXMatrixOrthoOffCenterLH(D3DXMATRIX* pOut, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf); - D3DXMATRIX* D3DXMatrixShadow(D3DXMATRIX* pOut, D3DXVECTOR4* pLight, D3DXPLANE* pPlane); - D3DXMATRIX* D3DXMatrixReflect(D3DXMATRIX* pOut, D3DXPLANE* pPlane); -} - -float D3DXQuaternionLength(D3DXQUATERNION *pQ) { - debug(D3DX10_DEBUG) { - if (pQ is null) return 0.0f; - } - return sqrtf((pQ.x * pQ.x) + (pQ.y * pQ.y) + (pQ.z * pQ.z) + (pQ.w * pQ.w)); -} - -float D3DXQuaternionLengthSq(D3DXQUATERNION *pQ) { - debug(D3DX10_DEBUG) { - if(pQ is null) return 0.0f; - } - return (pQ.x * pQ.x) + (pQ.y * pQ.y) + (pQ.z * pQ.z) + (pQ.w * pQ.w); -} - -float D3DXQuaternionDot(D3DXQUATERNION *pQ1, D3DXQUATERNION *pQ2) { - debug(D3DX10_DEBUG) { - if((pQ1 is null) || (pQ2 is null)) return 0.0f; - } - return (pQ1.x * pQ2.x) + (pQ1.y * pQ2.y) + (pQ1.z * pQ2.z) + (pQ1.w * pQ2.w); -} - -D3DXQUATERNION* D3DXQuaternionIdentity(D3DXQUATERNION *pOut) { - debug(D3DX10_DEBUG) { - if(pOut is null) return null; - } - pOut.x = pOut.y = pOut.z = 0.0f; - pOut.w = 1.0f; - return pOut; -} - -bool D3DXQuaternionIsIdentity(D3DXQUATERNION *pQ) { - debug(D3DX10_DEBUG) { - if(pQ is null) return false; - } - return (pQ.x == 0.0f) && (pQ.y == 0.0f) && (pQ.z == 0.0f) && (pQ.w == 1.0f); -} - -D3DXQUATERNION* D3DXQuaternionConjugate(D3DXQUATERNION *pOut, D3DXQUATERNION *pQ) { - debug(D3DX10_DEBUG) { - if((pOut is null) || (pQis is null)) return null; - } - pOut.x = -pQ.x; - pOut.y = -pQ.y; - pOut.z = -pQ.z; - pOut.w = pQ.w; - return pOut; -} - -extern(Windows) { - void D3DXQuaternionToAxisAngle(D3DXQUATERNION* pQ, D3DXVECTOR3* pAxis, FLOAT* pAngle); - D3DXQUATERNION* D3DXQuaternionRotationMatrix(D3DXQUATERNION* pOut, D3DXMATRIX* pM); - D3DXQUATERNION* D3DXQuaternionRotationAxis(D3DXQUATERNION* pOut, D3DXVECTOR3* pV, FLOAT Angle); - D3DXQUATERNION* D3DXQuaternionRotationYawPitchRoll(D3DXQUATERNION* pOut, FLOAT Yaw, FLOAT Pitch, FLOAT Roll); - D3DXQUATERNION* D3DXQuaternionMultiply(D3DXQUATERNION* pOut, D3DXQUATERNION* pQ1, D3DXQUATERNION* pQ2); - D3DXQUATERNION* D3DXQuaternionNormalize(D3DXQUATERNION* pOut, D3DXQUATERNION* pQ); - D3DXQUATERNION* D3DXQuaternionInverse(D3DXQUATERNION* pOut, D3DXQUATERNION* pQ); - D3DXQUATERNION* D3DXQuaternionLn(D3DXQUATERNION* pOut, D3DXQUATERNION* pQ); - D3DXQUATERNION* D3DXQuaternionExp(D3DXQUATERNION* pOut, D3DXQUATERNION* pQ); - D3DXQUATERNION* D3DXQuaternionSlerp(D3DXQUATERNION* pOut, D3DXQUATERNION* pQ1, D3DXQUATERNION* pQ2, FLOAT t); - D3DXQUATERNION* D3DXQuaternionSquad(D3DXQUATERNION* pOut, D3DXQUATERNION* pQ1, D3DXQUATERNION* pA, D3DXQUATERNION* pB, D3DXQUATERNION* pC, FLOAT t); - void D3DXQuaternionSquadSetup(D3DXQUATERNION* pAOut, D3DXQUATERNION* pBOut, D3DXQUATERNION* pCOut, D3DXQUATERNION* pQ0, D3DXQUATERNION* pQ1, D3DXQUATERNION* pQ2, D3DXQUATERNION* pQ3); - D3DXQUATERNION* D3DXQuaternionBaryCentric(D3DXQUATERNION* pOut, D3DXQUATERNION* pQ1, D3DXQUATERNION* pQ2, D3DXQUATERNION* pQ3, FLOAT f, FLOAT g); -} - -float D3DXPlaneDot(D3DXPLANE *pP, D3DXVECTOR4 *pV) { - debug(D3DX10_DEBUG) { - if((pP is null) || (pV is null)) return 0.0f; - } - return (pP.a * pV.x) + (pP.b * pV.y) + (pP.c * pV.z) + (pP.d * pV.w); -} - -float D3DXPlaneDotCoord(D3DXPLANE *pP, D3DXVECTOR3 *pV) { - debug(D3DX10_DEBUG) { - if((pP is null) || (pV is null)) return 0.0f; - } - return (pP.a * pV.x) + (pP.b * pV.y) + (pP.c * pV.z) + pP.d; -} - -float D3DXPlaneDotNormal(D3DXPLANE *pP, D3DXVECTOR3 *pV) { - debug(D3DX10_DEBUG) { - if((pP is null) || (pV is null)) return 0.0f; - } - return (pP.a * pV.x) + (pP.b * pV.y) + (pP.c * pV.z); -} - -D3DXPLANE* D3DXPlaneScale(D3DXPLANE *pOut, D3DXPLANE *pP, float s) { - debug(D3DX10_DEBUG) { - if((pOut is null) || (pP is null)) return null; - } - pOut.a = pP.a * s; - pOut.b = pP.b * s; - pOut.c = pP.c * s; - pOut.d = pP.d * s; - return pOut; -} - -extern(Windows) { - D3DXPLANE* D3DXPlaneNormalize(D3DXPLANE* pOut, D3DXPLANE* pP); - D3DXVECTOR3* D3DXPlaneIntersectLine(D3DXVECTOR3* pOut, D3DXPLANE* pP, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2); - D3DXPLANE* D3DXPlaneFromPointNormal(D3DXPLANE* pOut, D3DXVECTOR3* pPoint, D3DXVECTOR3* pNormal); - D3DXPLANE* D3DXPlaneFromPoints(D3DXPLANE* pOut, D3DXVECTOR3* pV1, D3DXVECTOR3* pV2, D3DXVECTOR3* pV3); - D3DXPLANE* D3DXPlaneTransform(D3DXPLANE* pOut, D3DXPLANE* pP, D3DXMATRIX* pM); - D3DXPLANE* D3DXPlaneTransformArray(D3DXPLANE* pOut, UINT OutStride, D3DXPLANE* pP, UINT PStride, D3DXMATRIX* pM, UINT n); -} - -D3DXCOLOR* D3DXColorNegative(D3DXCOLOR* pOut, D3DXCOLOR* pC) { - debug(D3DX10_DEBUG) { - if((pOut is null) || (pC is null)) return null; - } - pOut.r = 1.0f - pC.r; - pOut.g = 1.0f - pC.g; - pOut.b = 1.0f - pC.b; - pOut.a = pC.a; - return pOut; -} - -D3DXCOLOR* D3DXColorAdd(D3DXCOLOR* pOut, D3DXCOLOR* pC1, D3DXCOLOR* pC2) { - debug(D3DX10_DEBUG) { - if((pOut is null) || (pC1 is null) || (pC2 is null)) return null; - } - pOut.r = pC1.r + pC2.r; - pOut.g = pC1.g + pC2.g; - pOut.b = pC1.b + pC2.b; - pOut.a = pC1.a + pC2.a; - return pOut; -} - -D3DXCOLOR* D3DXColorSubtract(D3DXCOLOR* pOut, D3DXCOLOR* pC1, D3DXCOLOR* pC2) { - debug(D3DX10_DEBUG) { - if((pOut is null) || (pC1 is null) || (pC2 is null)) return null; - } - pOut.r = pC1.r - pC2.r; - pOut.g = pC1.g - pC2.g; - pOut.b = pC1.b - pC2.b; - pOut.a = pC1.a - pC2.a; - return pOut; -} - -D3DXCOLOR* D3DXColorScale(D3DXCOLOR* pOut, D3DXCOLOR* pC, float s) { - debug(D3DX10_DEBUG) { - if((pOut is null) || (pC is null)) return null; - } - pOut.r = pC.r * s; - pOut.g = pC.g * s; - pOut.b = pC.b * s; - pOut.a = pC.a * s; - return pOut; -} - -D3DXCOLOR* D3DXColorModulate(D3DXCOLOR* pOut, D3DXCOLOR* pC1, D3DXCOLOR* pC2) { - debug(D3DX10_DEBUG) { - if((pOut is null) || (pC1 is null) || (pC2 is null)) return null; - } - pOut.r = pC1.r * pC2.r; - pOut.g = pC1.g * pC2.g; - pOut.b = pC1.b * pC2.b; - pOut.a = pC1.a * pC2.a; - return pOut; -} - -D3DXCOLOR* D3DXColorLerp(D3DXCOLOR* pOut, D3DXCOLOR* pC1, D3DXCOLOR* pC2, float s) { - debug(D3DX10_DEBUG) { - if((pOut is null) || (pC1 is null) || (pC2 is null)) return null; - } - pOut.r = pC1.r + s * (pC2.r - pC1.r); - pOut.g = pC1.g + s * (pC2.g - pC1.g); - pOut.b = pC1.b + s * (pC2.b - pC1.b); - pOut.a = pC1.a + s * (pC2.a - pC1.a); - return pOut; -} - -extern(Windows) { - D3DXCOLOR* D3DXColorAdjustSaturation(D3DXCOLOR* pOut, D3DXCOLOR* pC, float s); - D3DXCOLOR* D3DXColorAdjustContrast(D3DXCOLOR* pOut, D3DXCOLOR* pC, float c); - FLOAT D3DXFresnelTerm(float CosTheta, float RefractionIndex); -} - -extern (C) const GUID IID_ID3DXMatrixStack = {0xc7885ba7, 0xf990, 0x4fe7, [0x92, 0x2d, 0x85, 0x15, 0xe4, 0x77, 0xdd, 0x85]}; - -interface ID3DXMatrixStack : IUnknown { - extern(Windows) : - HRESULT Pop(); - HRESULT Push(); - HRESULT LoadIdentity(); - HRESULT LoadMatrix(D3DXMATRIX* pM ); - HRESULT MultMatrix(D3DXMATRIX* pM ); - HRESULT MultMatrixLocal(D3DXMATRIX* pM ); - HRESULT RotateAxis(D3DXVECTOR3* pV, float Angle); - HRESULT RotateAxisLocal(D3DXVECTOR3* pV, float Angle); - HRESULT RotateYawPitchRoll(float Yaw, float Pitch, float Roll); - HRESULT RotateYawPitchRollLocal(float Yaw, float Pitch, float Roll); - HRESULT Scale(float x, float y, float z); - HRESULT ScaleLocal(float x, float y, float z); - HRESULT Translate(float x, float y, float z ); - HRESULT TranslateLocal(float x, float y, float z); - D3DXMATRIX* GetTop(); -} - -//TODO extern(Windows) HRESULT D3DXCreateMatrixStack(UINT Flags, D3DXMATRIXSTACK* ppStack); - -const D3DXSH_MINORDER = 2; -const D3DXSH_MAXORDER = 6; - -extern(Windows) { - float* D3DXSHEvalDirection(float* pOut, UINT Order, D3DXVECTOR3* pDir); - float* D3DXSHRotate(float* pOut, UINT Order, D3DXMATRIX* pMatrix, float* pIn); - float* D3DXSHRotateZ(float* pOut, UINT Order, float Angle, float* pIn); - float* D3DXSHAdd(float* pOut, UINT Order, float* pA, float* pB); - float* D3DXSHScale(float* pOut, UINT Order, float* pIn, float Scale); - float D3DXSHDot(UINT Order, float* pA, float* pB); - float* D3DXSHMultiply2(float* pOut, float* pF, float* pG); - float* D3DXSHMultiply3(float* pOut, float* pF, float* pG); - float* D3DXSHMultiply4(float* pOut, float* pF, float* pG); - float* D3DXSHMultiply5(float* pOut, float* pF, float* pG); - float* D3DXSHMultiply6(float* pOut, float* pF, float* pG); - HRESULT D3DXSHEvalDirectionalLight(UINT Order, D3DXVECTOR3* pDir, float RIntensity, float GIntensity, float BIntensity, float* pROut, float* pGOut, float* pBOut); - HRESULT D3DXSHEvalSphericalLight(UINT Order, D3DXVECTOR3* pPos, float Radius, float RIntensity, float GIntensity, float BIntensity, float* pROut, float* pGOut, float* pBOut); - HRESULT D3DXSHEvalConeLight(UINT Order, D3DXVECTOR3* pDir, float Radius, float RIntensity, float GIntensity, float BIntensity, float* pROut, float* pGOut, float* pBOut); - HRESULT D3DXSHEvalHemisphereLight(UINT Order, D3DXVECTOR3* pDir, D3DXCOLOR Top, D3DXCOLOR Bottom, float* pROut, float* pGOut, float* pBOut); - BOOL D3DXIntersectTri(D3DXVECTOR3* p0, D3DXVECTOR3* p1, D3DXVECTOR3* p2, D3DXVECTOR3* pRayPos, D3DXVECTOR3* pRayDir, float* pU, float* pV, float* pDist); - BOOL D3DXSphereBoundProbe(D3DXVECTOR3* pCenter, float Radius, D3DXVECTOR3* pRayPosition, D3DXVECTOR3* pRayDirection); - BOOL D3DXBoxBoundProbe(D3DXVECTOR3* pMin, D3DXVECTOR3* pMax, D3DXVECTOR3* pRayPosition, D3DXVECTOR3* pRayDirection); - HRESULT D3DXComputeBoundingSphere(D3DXVECTOR3* pFirstPosition, DWORD NumVertices, DWORD dwStride, D3DXVECTOR3* pCenter, float* pRadius); - HRESULT D3DXComputeBoundingBox(D3DXVECTOR3* pFirstPosition, DWORD NumVertices, DWORD dwStride, D3DXVECTOR3* pMin, D3DXVECTOR3* pMax); -} - -enum D3DX_CPU_OPTIMIZATION { - D3DX_NOT_OPTIMIZED = 0, - D3DX_3DNOW_OPTIMIZED, - D3DX_SSE2_OPTIMIZED, - D3DX_SSE_OPTIMIZED -} - -extern(Windows) D3DX_CPU_OPTIMIZATION D3DXCpuOptimizations(bool Enable); DELETED src/win32/directx/d3dx10mesh.d Index: src/win32/directx/d3dx10mesh.d ================================================================== --- src/win32/directx/d3dx10mesh.d +++ src/win32/directx/d3dx10mesh.d @@ -1,163 +0,0 @@ -/***********************************************************************\ -* d3dx10mesh.d * -* * -* Windows API header module * -* * -* Placed into public domain * -\***********************************************************************/ -module win32.directx.d3dx10mesh; - -private import win32.windows; -private import win32.directx.d3d10; -private import win32.directx.d3dx10; - -extern(C) const GUID IID_ID3DX10BaseMesh = {0x7ed943dd, 0x52e8, 0x40b5, [0xa8, 0xd8, 0x76, 0x68, 0x5c, 0x40, 0x63, 0x30]}; -extern(C) const GUID IID_ID3DX10MeshBuffer = {0x4b0d117, 0x1041, 0x46b1, [0xaa, 0x8a, 0x39, 0x52, 0x84, 0x8b, 0xa2, 0x2e]}; -extern(C) const GUID IID_ID3DX10Mesh = {0x4020e5c2, 0x1403, 0x4929, [0x88, 0x3f, 0xe2, 0xe8, 0x49, 0xfa, 0xc1, 0x95]}; -extern(C) const GUID IID_ID3DX10PMesh = {0x8875769a, 0xd579, 0x4088, [0xaa, 0xeb, 0x53, 0x4d, 0x1a, 0xd8, 0x4e, 0x96]}; -extern(C) const GUID IID_ID3DX10SPMesh = {0x667ea4c7, 0xf1cd, 0x4386, [0xb5, 0x23, 0x7c, 0x2, 0x90, 0xb8, 0x3c, 0xc5]}; -extern(C) const GUID IID_ID3DX10PatchMesh = {0x3ce6cc22, 0xdbf2, 0x44f4, [0x89, 0x4d, 0xf9, 0xc3, 0x4a, 0x33, 0x71, 0x39]}; - -enum D3DX10_MESH { - D3DX10_MESH_32_BIT = 0x001, - D3DX10_MESH_GS_ADJACENCY = 0x004 -} - -struct D3DX10_ATTRIBUTE_RANGE { - UINT AttribId; - UINT FaceStart; - UINT FaceCount; - UINT VertexStart; - UINT VertexCount; -} - -enum D3DX10_MESH_DISCARD_FLAGS { - D3DX10_MESH_DISCARD_ATTRIBUTE_BUFFER = 0x01, - D3DX10_MESH_DISCARD_ATTRIBUTE_TABLE = 0x02, - D3DX10_MESH_DISCARD_POINTREPS = 0x04, - D3DX10_MESH_DISCARD_ADJACENCY = 0x08, - D3DX10_MESH_DISCARD_DEVICE_BUFFERS = 0x10 -} - -struct D3DX10_WELD_EPSILONS { - FLOAT Position; - FLOAT BlendWeights; - FLOAT Normal; - FLOAT PSize; - FLOAT Specular; - FLOAT Diffuse; - FLOAT[8] Texcoord; - FLOAT Tangent; - FLOAT Binormal; - FLOAT TessFactor; -} - -struct D3DX10_INTERSECT_INFO { - UINT FaceIndex; - FLOAT U; - FLOAT V; - FLOAT Dist; -} - -interface ID3DX10MeshBuffer : IUnknown { - extern(Windows) : - HRESULT Map(void** ppData, SIZE_T* pSize); - HRESULT Unmap(); - SIZE_T GetSize(); -} - -interface ID3DX10Mesh : IUnknown { - extern(Windows) : - UINT GetFaceCount(); - UINT GetVertexCount(); - UINT GetVertexBufferCount(); - UINT GetFlags(); - HRESULT GetVertexDescription(D3D10_INPUT_ELEMENT_DESC** ppDesc, UINT* pDeclCount); - HRESULT SetVertexData(UINT iBuffer, void* pData); - HRESULT GetVertexBuffer(UINT iBuffer, ID3DX10MeshBuffer** ppVertexBuffer); - HRESULT SetIndexData(void* pData, UINT cIndices); - HRESULT GetIndexBuffer(ID3DX10MeshBuffer** ppIndexBuffer); - HRESULT SetAttributeData(UINT* pData); - HRESULT GetAttributeBuffer(ID3DX10MeshBuffer** ppAttributeBuffer); - HRESULT SetAttributeTable(D3DX10_ATTRIBUTE_RANGE* pAttribTable, UINT cAttribTableSize); - HRESULT GetAttributeTable(D3DX10_ATTRIBUTE_RANGE* pAttribTable, UINT* pAttribTableSize); - HRESULT GenerateAdjacencyAndPointReps(FLOAT Epsilon); - HRESULT GenerateGSAdjacency(); - HRESULT SetAdjacencyData(UINT* pAdjacency); - HRESULT GetAdjacencyBuffer(ID3DX10MeshBuffer** ppAdjacency); - HRESULT SetPointRepData(UINT* pPointReps); - HRESULT GetPointRepBuffer(ID3DX10MeshBuffer** ppPointReps); - HRESULT Discard(D3DX10_MESH_DISCARD_FLAGS dwDiscard); - HRESULT CloneMesh(UINT Flags, LPCSTR pPosSemantic, D3D10_INPUT_ELEMENT_DESC* pDesc, UINT DeclCount, ID3DX10Mesh** ppCloneMesh); - HRESULT Optimize(UINT Flags, UINT * pFaceRemap, ID3D10Blob* ppVertexRemap); - HRESULT GenerateAttributeBufferFromTable(); - HRESULT Intersect(D3DXVECTOR3* pRayPos, D3DXVECTOR3* pRayDir, UINT* pHitCount, UINT* pFaceIndex, float* pU, float* pV, float* pDist, ID3D10Blob* ppAllHits); - HRESULT IntersectSubset(UINT AttribId, D3DXVECTOR3* pRayPos, D3DXVECTOR3* pRayDir, UINT* pHitCount, UINT* pFaceIndex, float* pU, float* pV, float* pDist, ID3D10Blob* ppAllHits); - HRESULT CommitToDevice(); - HRESULT DrawSubset(UINT AttribId); - HRESULT DrawSubsetInstanced(UINT AttribId, UINT InstanceCount, UINT StartInstanceLocation); - HRESULT GetDeviceVertexBuffer(UINT iBuffer, ID3D10Buffer** ppVertexBuffer); - HRESULT GetDeviceIndexBuffer(ID3D10Buffer** ppIndexBuffer); -} - -HRESULT D3DX10CreateMesh(ID3D10Device* pDevice, D3D10_INPUT_ELEMENT_DESC* pDeclaration, UINT DeclCount, LPCSTR pPositionSemantic, UINT VertexCount, UINT FaceCount, UINT Options, ID3DX10Mesh** ppMesh); - -enum D3DX10_MESHOPT { - D3DX10_MESHOPT_COMPACT = 0x01000000, - D3DX10_MESHOPT_ATTR_SORT = 0x02000000, - D3DX10_MESHOPT_VERTEX_CACHE = 0x04000000, - D3DX10_MESHOPT_STRIP_REORDER = 0x08000000, - D3DX10_MESHOPT_IGNORE_VERTS = 0x10000000, - D3DX10_MESHOPT_DO_NOT_SPLIT = 0x20000000, - D3DX10_MESHOPT_DEVICE_INDEPENDENT = 0x00400000 -} - -extern(C) const GUID IID_ID3DX10SkinInfo = {0x420bd604, 0x1c76, 0x4a34, [0xa4, 0x66, 0xe4, 0x5d, 0x6, 0x58, 0xa3, 0x2c]}; - -const D3DX10_SKININFO_NO_SCALING = 0; -const D3DX10_SKININFO_SCALE_TO_1 = 1; -const D3DX10_SKININFO_SCALE_TO_TOTAL = 2; - -struct D3DX10_SKINNING_CHANNEL { - UINT SrcOffset; - UINT DestOffset; - BOOL IsNormal; -} - -interface ID3DX10SkinInfo : IUnknown { - extern(Windows) : - HRESULT QueryInterface(REFIID iid, LPVOID* ppv); - ULONG AddRef(); - ULONG Release(); - UINT GetNumVertices(); - UINT GetNumBones(); - UINT GetMaxBoneInfluences(); - HRESULT AddVertices(UINT Count); - HRESULT RemapVertices(UINT NewVertexCount, UINT* pVertexRemap); - HRESULT AddBones(UINT Count); - HRESULT RemoveBone(UINT Index); - HRESULT RemapBones(UINT NewBoneCount, UINT* pBoneRemap); - HRESULT AddBoneInfluences(UINT BoneIndex, UINT InfluenceCount, UINT* pIndices, float* pWeights); - HRESULT ClearBoneInfluences(UINT BoneIndex); - UINT GetBoneInfluenceCount(UINT BoneIndex); - HRESULT GetBoneInfluences(UINT BoneIndex, UINT Offset, UINT Count, UINT* pDestIndices, float* pDestWeights); - HRESULT FindBoneInfluenceIndex(UINT BoneIndex, UINT VertexIndex, UINT* pInfluenceIndex); - HRESULT SetBoneInfluence(UINT BoneIndex, UINT InfluenceIndex, float Weight); - HRESULT GetBoneInfluence(UINT BoneIndex, UINT InfluenceIndex, float* pWeight); - HRESULT Compact(UINT MaxPerVertexInfluences, UINT ScaleMode, float MinWeight); - HRESULT DoSoftwareSkinning(UINT StartVertex, UINT VertexCount, void* pSrcVertices, UINT SrcStride, void* pDestVertices, UINT DestStride, D3DXMATRIX* pBoneMatrices, D3DXMATRIX* pInverseTransposeBoneMatrices, D3DX10_SKINNING_CHANNEL* pChannelDescs, UINT NumChannels); -} - -HRESULT D3DX10CreateSkinInfo(ID3DX10SkinInfo* ppSkinInfo); - -struct D3DX10_ATTRIBUTE_WEIGHTS { - FLOAT Position; - FLOAT Boundary; - FLOAT Normal; - FLOAT Diffuse; - FLOAT Specular; - FLOAT[8] Texcoord; - FLOAT Tangent; - FLOAT Binormal; -} - DELETED src/win32/directx/d3dx10tex.d Index: src/win32/directx/d3dx10tex.d ================================================================== --- src/win32/directx/d3dx10tex.d +++ src/win32/directx/d3dx10tex.d @@ -1,192 +0,0 @@ -/***********************************************************************\ -* d3dx10tex.d * -* * -* Windows API header module * -* * -* Placed into public domain * -\***********************************************************************/ -module win32.directx.d3dx10tex; - -private import win32.windows; -private import win32.directx.d3d10; -private import win32.directx.d3dx10core; - -enum D3DX10_FILTER_FLAG { - D3DX10_FILTER_NONE = 0x000001, - D3DX10_FILTER_POINT = 0x000002, - D3DX10_FILTER_LINEAR = 0x000003, - D3DX10_FILTER_TRIANGLE = 0x000004, - D3DX10_FILTER_BOX = 0x000005, - D3DX10_FILTER_MIRROR_U = 0x010000, - D3DX10_FILTER_MIRROR_V = 0x020000, - D3DX10_FILTER_MIRROR_W = 0x040000, - D3DX10_FILTER_MIRROR = 0x070000, - D3DX10_FILTER_DITHER = 0x080000, - D3DX10_FILTER_DITHER_DIFFUSION = 0x100000, - D3DX10_FILTER_SRGB_IN = 0x200000, - D3DX10_FILTER_SRGB_OUT = 0x400000, - D3DX10_FILTER_SRGB = 0x600000 -} - -enum D3DX10_NORMALMAP_FLAG { - D3DX10_NORMALMAP_MIRROR_U = 0x010000, - D3DX10_NORMALMAP_MIRROR_V = 0x020000, - D3DX10_NORMALMAP_MIRROR = 0x030000, - D3DX10_NORMALMAP_INVERTSIGN = 0x080000, - D3DX10_NORMALMAP_COMPUTE_OCCLUSION = 0x100000 -} - -enum D3DX10_CHANNEL_FLAG { - D3DX10_CHANNEL_RED = 1, - D3DX10_CHANNEL_BLUE = 2, - D3DX10_CHANNEL_GREEN = 4, - D3DX10_CHANNEL_ALPHA = 8, - D3DX10_CHANNEL_LUMINANCE = 16 -} - -enum D3DX10_IMAGE_FILE_FORMAT { - D3DX10_IFF_BMP = 0, - D3DX10_IFF_JPG = 1, - D3DX10_IFF_PNG = 3, - D3DX10_IFF_DDS = 4, - D3DX10_IFF_TIFF = 10, - D3DX10_IFF_GIF = 11, - D3DX10_IFF_WMP = 12, - D3DX10_IFF_FORCE_DWORD = 0x7fffffff -} - -enum D3DX10_SAVE_TEXTURE_FLAG { - D3DX10_STF_USEINPUTBLOB = 1 -} - -struct D3DX10_IMAGE_INFO { - UINT Width; - UINT Height; - UINT Depth; - UINT ArraySize; - UINT MipLevels; - UINT MiscFlags; - DXGI_FORMAT Format; - D3D10_RESOURCE_DIMENSION ResourceDimension; - D3DX10_IMAGE_FILE_FORMAT ImageFileFormat; -} - -struct D3DX10_IMAGE_LOAD_INFO { - UINT Width; - UINT Height; - UINT Depth; - UINT FirstMipLevel; - UINT MipLevels; - D3D10_USAGE Usage; - UINT BindFlags; - UINT CpuAccessFlags; - UINT MiscFlags; - DXGI_FORMAT Format; - UINT Filter; - UINT MipFilter; - D3DX10_IMAGE_INFO* pSrcInfo; -} - -HRESULT D3DX10GetImageInfoFromFileA(LPCSTR pSrcFile, ID3DX10ThreadPump pPump, - D3DX10_IMAGE_INFO* pSrcInfo, HRESULT* pHResult); -HRESULT D3DX10GetImageInfoFromFileW(LPCWSTR pSrcFile, ID3DX10ThreadPump pPump, - D3DX10_IMAGE_INFO* pSrcInfo, HRESULT* pHResult); - -HRESULT D3DX10GetImageInfoFromResourceA(HMODULE hSrcModule, - LPCSTR pSrcResource, ID3DX10ThreadPump pPump, D3DX10_IMAGE_INFO* pSrcInfo, - HRESULT* pHResult); -HRESULT D3DX10GetImageInfoFromResourceW(HMODULE hSrcModule, - LPCWSTR pSrcResource, ID3DX10ThreadPump pPump, D3DX10_IMAGE_INFO* pSrcInfo, - HRESULT* pHResult); - -HRESULT D3DX10GetImageInfoFromMemory(LPCVOID pSrcData, SIZE_T SrcDataSize, - ID3DX10ThreadPump pPump, D3DX10_IMAGE_INFO* pSrcInfo, HRESULT* pHResult); - -HRESULT D3DX10CreateShaderResourceViewFromFileA(ID3D10Device pDevice, - LPCSTR pSrcFile, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, ID3DX10ThreadPump pPump, - ID3D10ShaderResourceView* ppShaderResourceView, HRESULT* pHResult); -HRESULT D3DX10CreateShaderResourceViewFromFileW(ID3D10Device pDevice, - LPCWSTR pSrcFile, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, ID3DX10ThreadPump pPump, - ID3D10ShaderResourceView* ppShaderResourceView, HRESULT* pHResult); - -HRESULT D3DX10CreateTextureFromFileA(ID3D10Device pDevice, LPCSTR pSrcFile, - D3DX10_IMAGE_LOAD_INFO* pLoadInfo, ID3DX10ThreadPump pPump, - ID3D10Resource* ppTexture, HRESULT* pHResult); -HRESULT D3DX10CreateTextureFromFileW(ID3D10Device pDevice, LPCWSTR pSrcFile, - D3DX10_IMAGE_LOAD_INFO* pLoadInfo, ID3DX10ThreadPump pPump, - ID3D10Resource* ppTexture, HRESULT* pHResult); - -HRESULT D3DX10CreateShaderResourceViewFromResourceA(ID3D10Device pDevice, - HMODULE hSrcModule, LPCSTR pSrcResource, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, - ID3DX10ThreadPump pPump, ID3D10ShaderResourceView* ppShaderResourceView, - HRESULT* pHResult); -HRESULT D3DX10CreateShaderResourceViewFromResourceW(ID3D10Device pDevice, - HMODULE hSrcModule, LPCWSTR pSrcResource, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, - ID3DX10ThreadPump pPump, ID3D10ShaderResourceView* ppShaderResourceView, - HRESULT* pHResult); - -HRESULT D3DX10CreateTextureFromResourceA(ID3D10Device pDevice, - HMODULE hSrcModule, LPCSTR pSrcResource, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, - ID3DX10ThreadPump pPump, ID3D10Resource* ppTexture, HRESULT* pHResult); -HRESULT D3DX10CreateTextureFromResourceW(ID3D10Device pDevice, - HMODULE hSrcModule, LPCWSTR pSrcResource, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, - ID3DX10ThreadPump pPump, ID3D10Resource* ppTexture, HRESULT* pHResult); - -HRESULT D3DX10CreateShaderResourceViewFromMemory(ID3D10Device pDevice, - LPCVOID pSrcData, SIZE_T SrcDataSize, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, - ID3DX10ThreadPump pPump, ID3D10ShaderResourceView* ppShaderResourceView, - HRESULT* pHResult); - -HRESULT D3DX10CreateTextureFromMemory(ID3D10Device pDevice, LPCVOID pSrcData, - SIZE_T SrcDataSize, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, - ID3DX10ThreadPump pPump, ID3D10Resource* ppTexture, HRESULT* pHResult); - -struct D3DX10_TEXTURE_LOAD_INFO { - D3D10_BOX* pSrcBox; - D3D10_BOX* pDstBox; - UINT SrcFirstMip; - UINT DstFirstMip; - UINT NumMips; - UINT SrcFirstElement; - UINT DstFirstElement; - UINT NumElements; - UINT Filter; - UINT MipFilter; -} - -HRESULT D3DX10LoadTextureFromTexture(ID3D10Resource pSrcTexture, - D3DX10_TEXTURE_LOAD_INFO* pLoadInfo, ID3D10Resource pDstTexture); - -HRESULT D3DX10FilterTexture(ID3D10Resource pTexture, UINT SrcLevel, UINT MipFilter); - -HRESULT D3DX10SaveTextureToFileA(ID3D10Resource pSrcTexture, - D3DX10_IMAGE_FILE_FORMAT DestFormat, LPCSTR pDestFile); -HRESULT D3DX10SaveTextureToFileW(ID3D10Resource pSrcTexture, - D3DX10_IMAGE_FILE_FORMAT DestFormat, LPCWSTR pDestFile); - -HRESULT D3DX10SaveTextureToMemory(ID3D10Resource pSrcTexture, - D3DX10_IMAGE_FILE_FORMAT DestFormat, ID3D10Blob* ppDestBuf, UINT Flags); - -HRESULT D3DX10ComputeNormalMap(ID3D10Texture2D pSrcTexture, UINT Flags, - UINT Channel, FLOAT Amplitude, ID3D10Texture2D pDestTexture); - -HRESULT D3DX10SHProjectCubeMap(UINT Order, ID3D10Texture2D pCubeMap, - FLOAT* pROut, FLOAT* pGOut, FLOAT* pBOut); - -version(Unicode) { - alias D3DX10GetImageInfoFromFileW D3DX10GetImageInfoFromFile; - alias D3DX10GetImageInfoFromResourceW D3DX10GetImageInfoFromResource; - alias D3DX10CreateShaderResourceViewFromFileW D3DX10CreateShaderResourceViewFromFile; - alias D3DX10CreateTextureFromFileW D3DX10CreateTextureFromFile; - alias D3DX10CreateShaderResourceViewFromResourceW D3DX10CreateShaderResourceViewFromResource; - alias D3DX10CreateTextureFromResourceW D3DX10CreateTextureFromResource; - alias D3DX10SaveTextureToFileW D3DX10SaveTextureToFile; -} else { - alias D3DX10GetImageInfoFromFileA D3DX10GetImageInfoFromFile; - alias D3DX10GetImageInfoFromResourceA D3DX10GetImageInfoFromResource; - alias D3DX10CreateShaderResourceViewFromFileA D3DX10CreateShaderResourceViewFromFile; - alias D3DX10CreateTextureFromFileA D3DX10CreateTextureFromFile; - alias D3DX10CreateShaderResourceViewFromResourceA D3DX10CreateShaderResourceViewFromResource; - alias D3DX10CreateTextureFromResourceA D3DX10CreateTextureFromResource; - alias D3DX10SaveTextureToFileA D3DX10SaveTextureToFile; -} DELETED src/win32/directx/d3dx9.d Index: src/win32/directx/d3dx9.d ================================================================== --- src/win32/directx/d3dx9.d +++ src/win32/directx/d3dx9.d @@ -1,1990 +0,0 @@ -// D3DX Types and Constants --------------------------------------------------------------------------------------- - -module win32.directx.d3dx9; - -public import win32.directx.d3d9; -public import win32.windows; - -alias D3DMATRIX D3DXMATRIX; - -const uint MAXD3DDECLLENGTH = 64; -const uint MAX_FVF_DECL_SIZE = MAXD3DDECLLENGTH + 1; - -align(4) struct D3DXATTRIBUTERANGE -{ - DWORD AttribId; - DWORD FaceStart; - DWORD FaceCount; - DWORD VertexStart; - DWORD VertexCount; -} - -align(4) struct D3DXVECTOR2 -{ - float x = 0, y = 0; - - static D3DXVECTOR2 opCall(float x, float y) - { - D3DXVECTOR2 v; - v.x = x; - v.y = y; - return v; - } -} - -alias D3DVECTOR D3DXVECTOR3; - -align(4) struct D3DXVECTOR4 -{ - float x = 0, y = 0, z = 0, w = 0; - - static D3DXVECTOR4 opCall(float x, float y, float z, float w) - { - D3DXVECTOR4 v; - v.x = x; - v.y = y; - v.z = z; - v.w = w; - return v; - } -} - -align(4) struct D3DXQUATERNION -{ - float x = 0, y = 0, z = 0, w = 0; -} - -align(4) struct D3DXFRAME -{ - LPSTR Name; - D3DXMATRIX TransformationMatrix; - - D3DXMESHCONTAINER* pMeshContainer; - - D3DXFRAME *pFrameSibling; - D3DXFRAME *pFrameFirstChild; -} - -align(4) struct D3DXMESHCONTAINER -{ - LPSTR Name; - - D3DXMESHDATA MeshData; - - D3DXMATERIAL* pMaterials; - D3DXEFFECTINSTANCE* pEffects; - DWORD NumMaterials; - DWORD *pAdjacency; - - ID3DXSkinInfo pSkinInfo; - - D3DXMESHCONTAINER* pNextMeshContainer; -} - -align(4) struct D3DXMESHDATA -{ - D3DXMESHDATATYPE Type; - - // current mesh data interface - union - { - ID3DXMesh pMesh; - ID3DXPMesh pPMesh; - ID3DXPatchMesh pPatchMesh; - } -} - -alias uint D3DXMESHDATATYPE; -enum : uint -{ - D3DXMESHTYPE_MESH = 0x001, // Normal ID3DXMesh data - D3DXMESHTYPE_PMESH = 0x002, // Progressive Mesh - ID3DXPMesh - D3DXMESHTYPE_PATCHMESH = 0x003 // Patch Mesh - ID3DXPatchMesh -} - -align(4) struct D3DXMATERIAL -{ - D3DMATERIAL9 MatD3D; - LPSTR pTextureFilename; -} - -alias uint D3DXEFFECTDEFAULTTYPE; -enum : uint -{ - D3DXEDT_STRING = 0x1, // pValue points to a null terminated ASCII string - D3DXEDT_FLOATS = 0x2, // pValue points to an array of floats - number of floats is NumBytes / sizeof(float) - D3DXEDT_DWORD = 0x3 // pValue points to a DWORD -} - -align(4) struct D3DXEFFECTDEFAULT -{ - LPSTR pParamName; - D3DXEFFECTDEFAULTTYPE Type; // type of the data pointed to by pValue - DWORD NumBytes; // size in bytes of the data pointed to by pValue - LPVOID pValue; // data for the default of the effect -} - -align(4) struct D3DXEFFECTINSTANCE -{ - LPSTR pEffectFilename; - DWORD NumDefaults; - D3DXEFFECTDEFAULT* pDefaults; -} - -alias uint D3DXPATCHMESHTYPE; -enum : uint -{ - D3DXPATCHMESH_RECT = 0x001, - D3DXPATCHMESH_TRI = 0x002, - D3DXPATCHMESH_NPATCH = 0x003 -} - -align(4) struct D3DXPATCHINFO -{ - D3DXPATCHMESHTYPE PatchType; - D3DDEGREETYPE Degree; - D3DBASISTYPE Basis; -} - -const uint LF_FACESIZE = 32; - -align(4) struct D3DXFONT_DESCA -{ - INT Height; - UINT Width; - UINT Weight; - UINT MipLevels; - BOOL Italic; - BYTE CharSet; - BYTE OutputPrecision; - BYTE Quality; - BYTE PitchAndFamily; - CHAR[LF_FACESIZE] FaceName; -} - -align(4) struct D3DXFONT_DESCW -{ - INT Height; - UINT Width; - UINT Weight; - UINT MipLevels; - BOOL Italic; - BYTE CharSet; - BYTE OutputPrecision; - BYTE Quality; - BYTE PitchAndFamily; - WCHAR[LF_FACESIZE] FaceName; -} - -align(4) struct TEXTMETRICA -{ - LONG tmHeight; - LONG tmAscent; - LONG tmDescent; - LONG tmInternalLeading; - LONG tmExternalLeading; - LONG tmAveCharWidth; - LONG tmMaxCharWidth; - LONG tmWeight; - LONG tmOverhang; - LONG tmDigitizedAspectX; - LONG tmDigitizedAspectY; - BYTE tmFirstChar; - BYTE tmLastChar; - BYTE tmDefaultChar; - BYTE tmBreakChar; - BYTE tmItalic; - BYTE tmUnderlined; - BYTE tmStruckOut; - BYTE tmPitchAndFamily; - BYTE tmCharSet; -} - -align(4) struct TEXTMETRICW -{ - LONG tmHeight; - LONG tmAscent; - LONG tmDescent; - LONG tmInternalLeading; - LONG tmExternalLeading; - LONG tmAveCharWidth; - LONG tmMaxCharWidth; - LONG tmWeight; - LONG tmOverhang; - LONG tmDigitizedAspectX; - LONG tmDigitizedAspectY; - WCHAR tmFirstChar; - WCHAR tmLastChar; - WCHAR tmDefaultChar; - WCHAR tmBreakChar; - BYTE tmItalic; - BYTE tmUnderlined; - BYTE tmStruckOut; - BYTE tmPitchAndFamily; - BYTE tmCharSet; -} - -align(4) struct D3DXEFFECT_DESC -{ - LPCSTR Creator; // Creator string - UINT Parameters; // Number of parameters - UINT Techniques; // Number of techniques - UINT Functions; // Number of function entrypoints -} - -alias char* D3DXHANDLE; - -align(4) struct D3DXPARAMETER_DESC -{ - LPCSTR Name; // Parameter name - LPCSTR Semantic; // Parameter semantic - D3DXPARAMETER_CLASS Class; // Class - D3DXPARAMETER_TYPE Type; // Component type - UINT Rows; // Number of rows - UINT Columns; // Number of columns - UINT Elements; // Number of array elements - UINT Annotations; // Number of annotations - UINT StructMembers; // Number of structure member sub-parameters - DWORD Flags; // D3DX_PARAMETER_* flags - UINT Bytes; // Parameter size, in bytes -} - -alias uint D3DXPARAMETER_CLASS; -enum : uint -{ - D3DXPC_SCALAR, - D3DXPC_VECTOR, - D3DXPC_MATRIX_ROWS, - D3DXPC_MATRIX_COLUMNS, - D3DXPC_OBJECT, - D3DXPC_STRUCT -} - -alias uint D3DXPARAMETER_TYPE; -enum : uint -{ - D3DXPT_VOID, - D3DXPT_BOOL, - D3DXPT_INT, - D3DXPT_FLOAT, - D3DXPT_STRING, - D3DXPT_TEXTURE, - D3DXPT_TEXTURE1D, - D3DXPT_TEXTURE2D, - D3DXPT_TEXTURE3D, - D3DXPT_TEXTURECUBE, - D3DXPT_SAMPLER, - D3DXPT_SAMPLER1D, - D3DXPT_SAMPLER2D, - D3DXPT_SAMPLER3D, - D3DXPT_SAMPLERCUBE, - D3DXPT_PIXELSHADER, - D3DXPT_VERTEXSHADER, - D3DXPT_PIXELFRAGMENT, - D3DXPT_VERTEXFRAGMENT -} - -align(4) struct D3DXTECHNIQUE_DESC -{ - LPCSTR Name; // Technique name - UINT Passes; // Number of passes - UINT Annotations; // Number of annotations -} - -align(4) struct D3DXPASS_DESC -{ - LPCSTR Name; // Pass name - UINT Annotations; // Number of annotations - - DWORD *pVertexShaderFunction; // Vertex shader function - DWORD *pPixelShaderFunction; // Pixel shader function -} - -align(4) struct D3DXFUNCTION_DESC -{ - LPCSTR Name; // Function name - UINT Annotations; // Number of annotations -} - -struct D3DXTRACK_DESC -{ - DWORD Priority; - FLOAT Weight = 0; - FLOAT Speed = 0; - double Position = 0; - BOOL Enable; -} - -align(4) struct D3DXEVENT_DESC -{ - DWORD Type; - UINT Track; - double StartTime = 0; - double Duration = 0; - DWORD Transition; - union - { - FLOAT Weight = 0; - FLOAT Speed; - double Position; - BOOL Enable; - }; -} - -align(4) struct D3DXKEY_VECTOR3 -{ - FLOAT Time = 0; - D3DXVECTOR3 Value; -} - -align(4) struct D3DXKEY_QUATERNION -{ - FLOAT Time = 0; - D3DXQUATERNION Value; -} - -align(4) struct D3DXKEY_CALLBACK -{ - FLOAT Time = 0; - LPVOID pCallbackData; -} - -align(4) struct D3DXIMAGE_INFO -{ - UINT Width; - UINT Height; - UINT Depth; - UINT MipLevels; - D3DFORMAT Format; - D3DRESOURCETYPE ResourceType; - D3DXIMAGE_FILEFORMAT ImageFileFormat; -} - -alias uint D3DXIMAGE_FILEFORMAT; -enum : uint -{ - D3DXIFF_BMP = 0, - D3DXIFF_JPG = 1, - D3DXIFF_TGA = 2, - D3DXIFF_PNG = 3, - D3DXIFF_DDS = 4, - D3DXIFF_PPM = 5, - D3DXIFF_DIB = 6, -} - -align(4) struct D3DXATTRIBUTEWEIGHTS -{ - FLOAT Position = 0; - FLOAT Boundary = 0; - FLOAT Normal = 0; - FLOAT Diffuse = 0; - FLOAT Specular = 0; - FLOAT[8] Texcoord = 0; - FLOAT Tangent = 0; - FLOAT Binormal = 0; -} - -align(4) struct D3DXPLANE -{ - FLOAT a = 0, b = 0, c = 0, d = 0; -} - -alias uint D3DXMESH; -enum : uint -{ - D3DXMESH_32BIT = 0x001, - D3DXMESH_DONOTCLIP = 0x002, - D3DXMESH_POINTS = 0x004, - D3DXMESH_RTPATCHES = 0x008, - D3DXMESH_NPATCHES = 0x4000, - D3DXMESH_VB_SYSTEMMEM = 0x010, - D3DXMESH_VB_MANAGED = 0x020, - D3DXMESH_VB_WRITEONLY = 0x040, - D3DXMESH_VB_DYNAMIC = 0x080, - D3DXMESH_VB_SOFTWAREPROCESSING = 0x8000, - D3DXMESH_IB_SYSTEMMEM = 0x100, - D3DXMESH_IB_MANAGED = 0x200, - D3DXMESH_IB_WRITEONLY = 0x400, - D3DXMESH_IB_DYNAMIC = 0x800, - D3DXMESH_IB_SOFTWAREPROCESSING= 0x10000, - D3DXMESH_VB_SHARE = 0x1000, - D3DXMESH_USEHWONLY = 0x2000, - D3DXMESH_SYSTEMMEM = 0x110, - D3DXMESH_MANAGED = 0x220, - D3DXMESH_WRITEONLY = 0x440, - D3DXMESH_DYNAMIC = 0x880, - D3DXMESH_SOFTWAREPROCESSING = 0x18000, -} - -align(4) struct D3DXMACRO -{ - LPCSTR Name; - LPCSTR Definition; -} - -align(4) struct D3DXSEMANTIC -{ - UINT Usage; - UINT UsageIndex; -} - -alias uint D3DXINCLUDE_TYPE; -enum : uint -{ - D3DXINC_LOCAL, - D3DXINC_SYSTEM, -} - -enum : uint -{ - D3DXFX_DONOTSAVESTATE = (1 << 0), - D3DXFX_DONOTSAVESHADERSTATE = (1 << 1), - D3DXFX_DONOTSAVESAMPLERSTATE = (1 << 2), - D3DXFX_NOT_CLONEABLE = (1 << 11) -} - -alias uint D3DXMESHSIMP; -enum : uint -{ - D3DXMESHSIMP_VERTEX = 0x1, - D3DXMESHSIMP_FACE = 0x2 -} - -enum : uint -{ - DT_TOP = 0x00000000, - DT_LEFT = 0x00000000, - DT_CENTER = 0x00000001, - DT_RIGHT = 0x00000002, - DT_VCENTER = 0x00000004, - DT_BOTTOM = 0x00000008, - DT_WORDBREAK = 0x00000010, - DT_SINGLELINE = 0x00000020, - DT_EXPANDTABS = 0x00000040, - DT_TABSTOP = 0x00000080, - DT_NOCLIP = 0x00000100, - DT_EXTERNALLEADING = 0x00000200, - DT_CALCRECT = 0x00000400, - DT_NOPREFIX = 0x00000800, - DT_INTERNAL = 0x00001000 -} - -enum : uint -{ - D3DXSPRITE_DONOTSAVESTATE = (1 << 0), - D3DXSPRITE_DONOTMODIFY_RENDERSTATE = (1 << 1), - D3DXSPRITE_OBJECTSPACE = (1 << 2), - D3DXSPRITE_BILLBOARD = (1 << 3), - D3DXSPRITE_ALPHABLEND = (1 << 4), - D3DXSPRITE_SORT_TEXTURE = (1 << 5), - D3DXSPRITE_SORT_DEPTH_FRONTTOBACK = (1 << 6), - D3DXSPRITE_SORT_DEPTH_BACKTOFRONT = (1 << 7) -} - -enum : uint -{ - D3DX_FILTER_NONE = (1 << 0), - D3DX_FILTER_POINT = (2 << 0), - D3DX_FILTER_LINEAR = (3 << 0), - D3DX_FILTER_TRIANGLE = (4 << 0), - D3DX_FILTER_BOX = (5 << 0), - D3DX_FILTER_MIRROR_U = (1 << 16), - D3DX_FILTER_MIRROR_V = (2 << 16), - D3DX_FILTER_MIRROR_W = (4 << 16), - D3DX_FILTER_MIRROR = (7 << 16), - D3DX_FILTER_DITHER = (1 << 19), - D3DX_FILTER_DITHER_DIFFUSION = (2 << 19), - D3DX_FILTER_SRGB_IN = (1 << 21), - D3DX_FILTER_SRGB_OUT = (2 << 21), - D3DX_FILTER_SRGB = (3 << 21) -} - -const uint D3DX_DEFAULT = cast(UINT) -1; - -alias uint D3DXMESHOPT; -enum : uint -{ - D3DXMESHOPT_COMPACT = 0x01000000, - D3DXMESHOPT_ATTRSORT = 0x02000000, - D3DXMESHOPT_VERTEXCACHE = 0x04000000, - D3DXMESHOPT_STRIPREORDER = 0x08000000, - D3DXMESHOPT_IGNOREVERTS = 0x10000000, // optimize faces only, don't touch vertices - D3DXMESHOPT_DONOTSPLIT = 0x20000000, // do not split vertices shared between attribute groups when attribute sorting - D3DXMESHOPT_DEVICEINDEPENDENT = 0x00400000 // Only affects VCache. uses a static known good cache size for all cards -} - -enum : uint -{ - D3DXPLAY_LOOP = 0, - D3DXPLAY_ONCE = 1, - D3DXPLAY_PINGPONG = 2 -} -alias uint D3DXPLAYBACK_TYPE; - - -// D3DX Interfaces --------------------------------------------------------------------------------------- - -interface ID3DXSkinInfo : IUnknown -{ - extern(Windows): - - // Specify the which vertices do each bones influence and by how much - HRESULT SetBoneInfluence(DWORD bone, DWORD numInfluences, DWORD* vertices, FLOAT* weights); - HRESULT SetBoneVertexInfluence(DWORD boneNum, DWORD influenceNum, float weight); - DWORD GetNumBoneInfluences(DWORD bone); - HRESULT GetBoneInfluence(DWORD bone, DWORD* vertices, FLOAT* weights); - HRESULT GetBoneVertexInfluence(DWORD boneNum, DWORD influenceNum, float *pWeight, DWORD *pVertexNum); - HRESULT GetMaxVertexInfluences(DWORD* maxVertexInfluences); - DWORD GetNumBones(); - HRESULT FindBoneVertexInfluenceIndex(DWORD boneNum, DWORD vertexNum, DWORD *pInfluenceIndex); - - // This gets the max face influences based on a triangle mesh with the specified index buffer - HRESULT GetMaxFaceInfluences(IDirect3DIndexBuffer9 pIB, DWORD NumFaces, DWORD* maxFaceInfluences); - - // Set min bone influence. Bone influences that are smaller than this are ignored - HRESULT SetMinBoneInfluence(FLOAT MinInfl); - // Get min bone influence. - FLOAT GetMinBoneInfluence(); - - // Bone names are returned by D3DXLoadSkinMeshFromXof. They are not used by any other method of this object - HRESULT SetBoneName(DWORD Bone, LPCSTR pName); // pName is copied to an internal string buffer - LPCSTR GetBoneName(DWORD Bone); // A pointer to an internal string buffer is returned. Do not free this. - - // Bone offset matrices are returned by D3DXLoadSkinMeshFromXof. They are not used by any other method of this object - HRESULT SetBoneOffsetMatrix(DWORD Bone, D3DXMATRIX *pBoneTransform); // pBoneTransform is copied to an internal buffer - D3DXMATRIX* GetBoneOffsetMatrix(DWORD Bone); // A pointer to an internal matrix is returned. Do not free this. - - // Clone a skin info object - HRESULT Clone(ID3DXSkinInfo* ppSkinInfo); - - // Update bone influence information to match vertices after they are reordered. This should be called - // if the target vertex buffer has been reordered externally. - HRESULT Remap(DWORD NumVertices, DWORD* pVertexRemap); - - // These methods enable the modification of the vertex layout of the vertices that will be skinned - HRESULT SetFVF(DWORD FVF); - HRESULT SetDeclaration(D3DVERTEXELEMENT9 *pDeclaration); - DWORD GetFVF(); - HRESULT GetDeclaration(D3DVERTEXELEMENT9[MAX_FVF_DECL_SIZE] Declaration); - - // Apply SW skinning based on current pose matrices to the target vertices. - HRESULT UpdateSkinnedMesh( - D3DXMATRIX* pBoneTransforms, - D3DXMATRIX* pBoneInvTransposeTransforms, - LPCVOID pVerticesSrc, - PVOID pVerticesDst); - - // Takes a mesh and returns a new mesh with per vertex blend weights and a bone combination - // table that describes which bones affect which subsets of the mesh - HRESULT ConvertToBlendedMesh( - ID3DXMesh pMesh, - DWORD Options, - DWORD *pAdjacencyIn, - LPDWORD pAdjacencyOut, - DWORD* pFaceRemap, - ID3DXBuffer* ppVertexRemap, - DWORD* pMaxFaceInfl, - DWORD* pNumBoneCombinations, - ID3DXBuffer* ppBoneCombinationTable, - ID3DXMesh* ppMesh); - - // Takes a mesh and returns a new mesh with per vertex blend weights and indices - // and a bone combination table that describes which bones palettes affect which subsets of the mesh - HRESULT ConvertToIndexedBlendedMesh( - ID3DXMesh pMesh, - DWORD Options, - DWORD paletteSize, - DWORD *pAdjacencyIn, - LPDWORD pAdjacencyOut, - DWORD* pFaceRemap, - ID3DXBuffer* ppVertexRemap, - DWORD* pMaxVertexInfl, - DWORD *pNumBoneCombinations, - ID3DXBuffer* ppBoneCombinationTable, - ID3DXMesh* ppMesh); -} - -interface ID3DXBaseMesh : IUnknown -{ - extern(Windows): - - // ID3DXBaseMesh - HRESULT DrawSubset( DWORD AttribId) ; - DWORD GetNumFaces() ; - DWORD GetNumVertices() ; - DWORD GetFVF() ; - HRESULT GetDeclaration( D3DVERTEXELEMENT9[MAX_FVF_DECL_SIZE] Declaration) ; - DWORD GetNumBytesPerVertex() ; - DWORD GetOptions() ; - HRESULT GetDevice( IDirect3DDevice9* ppDevice) ; - HRESULT CloneMeshFVF( DWORD Options, - DWORD FVF, IDirect3DDevice9 pD3DDevice, ID3DXMesh* ppCloneMesh) ; - HRESULT CloneMesh( DWORD Options, - D3DVERTEXELEMENT9 *pDeclaration, IDirect3DDevice9 pD3DDevice, ID3DXMesh* ppCloneMesh) ; - HRESULT GetVertexBuffer( IDirect3DVertexBuffer9* ppVB) ; - HRESULT GetIndexBuffer( IDirect3DIndexBuffer9* ppIB) ; - HRESULT LockVertexBuffer( DWORD Flags, LPVOID *ppData) ; - HRESULT UnlockVertexBuffer() ; - HRESULT LockIndexBuffer( DWORD Flags, LPVOID *ppData) ; - HRESULT UnlockIndexBuffer() ; - HRESULT GetAttributeTable( - D3DXATTRIBUTERANGE *pAttribTable, DWORD* pAttribTableSize) ; - - HRESULT ConvertPointRepsToAdjacency( DWORD* pPRep, DWORD* pAdjacency) ; - HRESULT ConvertAdjacencyToPointReps( DWORD* pAdjacency, DWORD* pPRep) ; - HRESULT GenerateAdjacency( FLOAT Epsilon, DWORD* pAdjacency) ; - - HRESULT UpdateSemantics( D3DVERTEXELEMENT9[MAX_FVF_DECL_SIZE] Declaration) ; -} - -interface ID3DXMesh : ID3DXBaseMesh -{ - extern(Windows): - - // ID3DXMesh - HRESULT LockAttributeBuffer( DWORD Flags, DWORD** ppData) ; - HRESULT UnlockAttributeBuffer() ; - HRESULT Optimize( DWORD Flags, DWORD* pAdjacencyIn, DWORD* pAdjacencyOut, - DWORD* pFaceRemap, ID3DXBuffer *ppVertexRemap, - ID3DXMesh* ppOptMesh) ; - HRESULT OptimizeInplace( DWORD Flags, DWORD* pAdjacencyIn, DWORD* pAdjacencyOut, - DWORD* pFaceRemap, ID3DXBuffer *ppVertexRemap) ; - HRESULT SetAttributeTable( D3DXATTRIBUTERANGE *pAttribTable, DWORD cAttribTableSize) ; -} - -interface ID3DXBuffer : IUnknown -{ - extern(Windows): - - // ID3DXBuffer - LPVOID GetBufferPointer(); - DWORD GetBufferSize(); -} - -interface ID3DXPMesh : ID3DXBaseMesh -{ - extern(Windows): - - // ID3DXPMesh - HRESULT ClonePMeshFVF( DWORD Options, - DWORD FVF, IDirect3DDevice9 pD3DDevice, ID3DXPMesh* ppCloneMesh) ; - HRESULT ClonePMesh( DWORD Options, - D3DVERTEXELEMENT9 *pDeclaration, IDirect3DDevice9 pD3DDevice, ID3DXPMesh* ppCloneMesh) ; - HRESULT SetNumFaces( DWORD Faces) ; - HRESULT SetNumVertices( DWORD Vertices) ; - DWORD GetMaxFaces() ; - DWORD GetMinFaces() ; - DWORD GetMaxVertices() ; - DWORD GetMinVertices() ; - HRESULT Save( void *pStream, D3DXMATERIAL* pMaterials, D3DXEFFECTINSTANCE* pEffectInstances, DWORD NumMaterials) ; - - HRESULT Optimize( DWORD Flags, DWORD* pAdjacencyOut, - DWORD* pFaceRemap, ID3DXBuffer *ppVertexRemap, - ID3DXMesh* ppOptMesh) ; - - HRESULT OptimizeBaseLOD( DWORD Flags, DWORD* pFaceRemap) ; - HRESULT TrimByFaces( DWORD NewFacesMin, DWORD NewFacesMax, DWORD *rgiFaceRemap, DWORD *rgiVertRemap) ; - HRESULT TrimByVertices( DWORD NewVerticesMin, DWORD NewVerticesMax, DWORD *rgiFaceRemap, DWORD *rgiVertRemap) ; - - HRESULT GetAdjacency( DWORD* pAdjacency) ; - - // Used to generate the immediate "ancestor" for each vertex when it is removed by a vsplit. Allows generation of geomorphs - // Vertex buffer must be equal to or greater than the maximum number of vertices in the pmesh - HRESULT GenerateVertexHistory( DWORD* pVertexHistory) ; -} - -interface ID3DXPatchMesh : IUnknown -{ - extern(Windows): - - // ID3DXPatchMesh - - // Return creation parameters - DWORD GetNumPatches() ; - DWORD GetNumVertices() ; - HRESULT GetDeclaration( D3DVERTEXELEMENT9[MAX_FVF_DECL_SIZE] Declaration) ; - DWORD GetControlVerticesPerPatch() ; - DWORD GetOptions() ; - HRESULT GetDevice( IDirect3DDevice9 *ppDevice) ; - HRESULT GetPatchInfo( D3DXPATCHINFO* PatchInfo) ; - - // Control mesh access - HRESULT GetVertexBuffer( IDirect3DVertexBuffer9* ppVB) ; - HRESULT GetIndexBuffer( IDirect3DIndexBuffer9* ppIB) ; - HRESULT LockVertexBuffer( DWORD flags, LPVOID *ppData) ; - HRESULT UnlockVertexBuffer() ; - HRESULT LockIndexBuffer( DWORD flags, LPVOID *ppData) ; - HRESULT UnlockIndexBuffer() ; - HRESULT LockAttributeBuffer( DWORD flags, DWORD** ppData) ; - HRESULT UnlockAttributeBuffer() ; - - // function returns the size of the tessellated mesh given a tessellation level. - // assumes uniform tessellation. For adaptive tessellation the Adaptive parameter must - // be set to TRUE and TessellationLevel should be the max tessellation. - // will result in the max mesh size necessary for adaptive tessellation. - HRESULT GetTessSize( FLOAT fTessLevel,DWORD Adaptive, DWORD *NumTriangles,DWORD *NumVertices) ; - - //GenerateAdjacency determines which patches are adjacent with provided tolerance - // information is used internally to optimize tessellation - HRESULT GenerateAdjacency( FLOAT Tolerance) ; - - //CloneMesh Creates a new patchmesh with the specified decl, and converts the vertex buffer - //to the new decl. Entries in the new decl which are new are set to 0. If the current mesh - //has adjacency, the new mesh will also have adjacency - HRESULT CloneMesh( DWORD Options, D3DVERTEXELEMENT9 *pDecl, ID3DXPatchMesh *pMesh) ; - - // Optimizes the patchmesh for efficient tessellation. function is designed - // to perform one time optimization for patch meshes that need to be tessellated - // repeatedly by calling the Tessellate() method. The optimization performed is - // independent of the actual tessellation level used. - // Currently Flags is unused. - // If vertices are changed, Optimize must be called again - HRESULT Optimize( DWORD flags) ; - - //gets and sets displacement parameters - //displacement maps can only be 2D textures MIP-MAPPING is ignored for non adapative tessellation - HRESULT SetDisplaceParam( IDirect3DBaseTexture9 Texture, - D3DTEXTUREFILTERTYPE MinFilter, - D3DTEXTUREFILTERTYPE MagFilter, - D3DTEXTUREFILTERTYPE MipFilter, - D3DTEXTUREADDRESS Wrap, - DWORD dwLODBias) ; - - HRESULT GetDisplaceParam( IDirect3DBaseTexture9 *Texture, - D3DTEXTUREFILTERTYPE *MinFilter, - D3DTEXTUREFILTERTYPE *MagFilter, - D3DTEXTUREFILTERTYPE *MipFilter, - D3DTEXTUREADDRESS *Wrap, - DWORD *dwLODBias) ; - - // Performs the uniform tessellation based on the tessellation level. - // function will perform more efficiently if the patch mesh has been optimized using the Optimize() call. - HRESULT Tessellate( FLOAT fTessLevel,ID3DXMesh pMesh) ; - - // Performs adaptive tessellation based on the Z based adaptive tessellation criterion. - // pTrans specifies a 4D vector that is dotted with the vertices to get the per vertex - // adaptive tessellation amount. Each edge is tessellated to the average of the criterion - // at the 2 vertices it connects. - // MaxTessLevel specifies the upper limit for adaptive tesselation. - // function will perform more efficiently if the patch mesh has been optimized using the Optimize() call. - HRESULT TessellateAdaptive( - D3DXVECTOR4 *pTrans, - DWORD dwMaxTessLevel, - DWORD dwMinTessLevel, - ID3DXMesh pMesh) ; - -} - -interface ID3DXFont : IUnknown -{ - extern(Windows): - - // ID3DXFont - HRESULT GetDevice( IDirect3DDevice9 *ppDevice) ; - HRESULT GetDescA( D3DXFONT_DESCA *pDesc) ; - HRESULT GetDescW( D3DXFONT_DESCW *pDesc) ; - BOOL GetTextMetricsA( TEXTMETRICA *pTextMetrics) ; - BOOL GetTextMetricsW( TEXTMETRICW *pTextMetrics) ; - - HDC GetDC() ; - HRESULT GetGlyphData( UINT Glyph, IDirect3DTexture9 *ppTexture, RECT *pBlackBox, POINT *pCellInc) ; - - HRESULT PreloadCharacters( UINT First, UINT Last) ; - HRESULT PreloadGlyphs( UINT First, UINT Last) ; - HRESULT PreloadTextA( LPCSTR pString, INT Count) ; - HRESULT PreloadTextW( LPCWSTR pString, INT Count) ; - - INT DrawTextA( ID3DXSprite pSprite, LPCSTR pString, INT Count, LPRECT pRect, DWORD Format, D3DCOLOR Color) ; - INT DrawTextW( ID3DXSprite pSprite, LPCWSTR pString, INT Count, LPRECT pRect, DWORD Format, D3DCOLOR Color) ; - - HRESULT OnLostDevice() ; - HRESULT OnResetDevice() ; -} - -interface ID3DXSprite : IUnknown -{ - extern(Windows): - - // ID3DXSprite - HRESULT GetDevice( IDirect3DDevice9* ppDevice) ; - - HRESULT GetTransform( D3DXMATRIX *pTransform) ; - HRESULT SetTransform( D3DXMATRIX *pTransform) ; - - HRESULT SetWorldViewRH( D3DXMATRIX *pWorld, D3DXMATRIX *pView) ; - HRESULT SetWorldViewLH( D3DXMATRIX *pWorld, D3DXMATRIX *pView) ; - - HRESULT Begin( DWORD Flags) ; - HRESULT Draw( IDirect3DTexture9 pTexture, RECT *pSrcRect, D3DXVECTOR3 *pCenter, D3DXVECTOR3 *pPosition, D3DCOLOR Color) ; - HRESULT Flush() ; - HRESULT End() ; - - HRESULT OnLostDevice() ; - HRESULT OnResetDevice() ; -} - -interface ID3DXBaseEffect : IUnknown -{ - extern(Windows): - - // Descs - HRESULT GetDesc( D3DXEFFECT_DESC* pDesc) ; - HRESULT GetParameterDesc( D3DXHANDLE hParameter, D3DXPARAMETER_DESC* pDesc) ; - HRESULT GetTechniqueDesc( D3DXHANDLE hTechnique, D3DXTECHNIQUE_DESC* pDesc) ; - HRESULT GetPassDesc( D3DXHANDLE hPass, D3DXPASS_DESC* pDesc) ; - HRESULT GetFunctionDesc( D3DXHANDLE hShader, D3DXFUNCTION_DESC* pDesc) ; - - // Handle operations - D3DXHANDLE GetParameter( D3DXHANDLE hParameter, UINT Index) ; - D3DXHANDLE GetParameterByName( D3DXHANDLE hParameter, LPCSTR pName) ; - D3DXHANDLE GetParameterBySemantic( D3DXHANDLE hParameter, LPCSTR pSemantic) ; - D3DXHANDLE GetParameterElement( D3DXHANDLE hParameter, UINT Index) ; - D3DXHANDLE GetTechnique( UINT Index) ; - D3DXHANDLE GetTechniqueByName( LPCSTR pName) ; - D3DXHANDLE GetPass( D3DXHANDLE hTechnique, UINT Index) ; - D3DXHANDLE GetPassByName( D3DXHANDLE hTechnique, LPCSTR pName) ; - D3DXHANDLE GetFunction( UINT Index) ; - D3DXHANDLE GetFunctionByName( LPCSTR pName) ; - D3DXHANDLE GetAnnotation( D3DXHANDLE hObject, UINT Index) ; - D3DXHANDLE GetAnnotationByName( D3DXHANDLE hObject, LPCSTR pName) ; - - // Get/Set Parameters - HRESULT SetValue( D3DXHANDLE hParameter, LPCVOID pData, UINT Bytes) ; - HRESULT GetValue( D3DXHANDLE hParameter, LPVOID pData, UINT Bytes) ; - HRESULT SetBool( D3DXHANDLE hParameter, BOOL b) ; - HRESULT GetBool( D3DXHANDLE hParameter, BOOL* pb) ; - HRESULT SetBoolArray( D3DXHANDLE hParameter, BOOL* pb, UINT Count) ; - HRESULT GetBoolArray( D3DXHANDLE hParameter, BOOL* pb, UINT Count) ; - HRESULT SetInt( D3DXHANDLE hParameter, INT n) ; - HRESULT GetInt( D3DXHANDLE hParameter, INT* pn) ; - HRESULT SetIntArray( D3DXHANDLE hParameter, INT* pn, UINT Count) ; - HRESULT GetIntArray( D3DXHANDLE hParameter, INT* pn, UINT Count) ; - HRESULT SetFloat( D3DXHANDLE hParameter, FLOAT f) ; - HRESULT GetFloat( D3DXHANDLE hParameter, FLOAT* pf) ; - HRESULT SetFloatArray( D3DXHANDLE hParameter, FLOAT* pf, UINT Count) ; - HRESULT GetFloatArray( D3DXHANDLE hParameter, FLOAT* pf, UINT Count) ; - HRESULT SetVector( D3DXHANDLE hParameter, D3DXVECTOR4* pVector) ; - HRESULT GetVector( D3DXHANDLE hParameter, D3DXVECTOR4* pVector) ; - HRESULT SetVectorArray( D3DXHANDLE hParameter, D3DXVECTOR4* pVector, UINT Count) ; - HRESULT GetVectorArray( D3DXHANDLE hParameter, D3DXVECTOR4* pVector, UINT Count) ; - HRESULT SetMatrix( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix) ; - HRESULT GetMatrix( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix) ; - HRESULT SetMatrixArray( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count) ; - HRESULT GetMatrixArray( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count) ; - HRESULT SetMatrixPointerArray( D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count) ; - HRESULT GetMatrixPointerArray( D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count) ; - HRESULT SetMatrixTranspose( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix) ; - HRESULT GetMatrixTranspose( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix) ; - HRESULT SetMatrixTransposeArray( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count) ; - HRESULT GetMatrixTransposeArray( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count) ; - HRESULT SetMatrixTransposePointerArray( D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count) ; - HRESULT GetMatrixTransposePointerArray( D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count) ; - HRESULT SetString( D3DXHANDLE hParameter, LPCSTR pString) ; - HRESULT GetString( D3DXHANDLE hParameter, LPCSTR* ppString) ; - HRESULT SetTexture( D3DXHANDLE hParameter, IDirect3DBaseTexture9 pTexture) ; - HRESULT GetTexture( D3DXHANDLE hParameter, IDirect3DBaseTexture9 *ppTexture) ; - HRESULT GetPixelShader( D3DXHANDLE hParameter, IDirect3DPixelShader9 *ppPShader) ; - HRESULT GetVertexShader( D3DXHANDLE hParameter, IDirect3DVertexShader9 *ppVShader) ; - - //Set Range of an Array to pass to device - //Useful for sending only a subrange of an array down to the device - HRESULT SetArrayRange( D3DXHANDLE hParameter, UINT uStart, UINT uEnd) ; - -} - -interface ID3DXEffect : ID3DXBaseEffect -{ - extern(Windows): - - // Pool - HRESULT GetPool( ID3DXEffectPool* ppPool) ; - - // Selecting and setting a technique - HRESULT SetTechnique( D3DXHANDLE hTechnique) ; - D3DXHANDLE GetCurrentTechnique() ; - HRESULT ValidateTechnique( D3DXHANDLE hTechnique) ; - HRESULT FindNextValidTechnique( D3DXHANDLE hTechnique, D3DXHANDLE *pTechnique) ; - BOOL IsParameterUsed( D3DXHANDLE hParameter, D3DXHANDLE hTechnique) ; - - // Using current technique - // Begin starts active technique - // BeginPass begins a pass - // CommitChanges updates changes to any set calls in the pass. should be called before - // any DrawPrimitive call to d3d - // EndPass ends a pass - // End ends active technique - HRESULT Begin( UINT *pPasses, DWORD Flags) ; - HRESULT BeginPass( UINT Pass) ; - HRESULT CommitChanges() ; - HRESULT EndPass() ; - HRESULT End() ; - - // Managing D3D Device - HRESULT GetDevice( IDirect3DDevice9* ppDevice) ; - HRESULT OnLostDevice() ; - HRESULT OnResetDevice() ; - - // Logging device calls - HRESULT SetStateManager( ID3DXEffectStateManager pManager) ; - HRESULT GetStateManager( ID3DXEffectStateManager *ppManager) ; - - // Parameter blocks - HRESULT BeginParameterBlock() ; - D3DXHANDLE EndParameterBlock() ; - HRESULT ApplyParameterBlock( D3DXHANDLE hParameterBlock) ; - HRESULT DeleteParameterBlock( D3DXHANDLE hParameterBlock) ; - - // Cloning - HRESULT CloneEffect( IDirect3DDevice9 pDevice, ID3DXEffect* ppEffect) ; -} - -interface ID3DXEffectPool : IUnknown -{ - extern(Windows): - - // No public methods -} - -interface ID3DXEffectStateManager : IUnknown -{ - extern(Windows): - - // The following methods are called by the Effect when it wants to make - // the corresponding device call. Note that: - // 1. Users manage the state and are therefore responsible for making the - // the corresponding device calls themselves inside their callbacks. - // 2. Effects pay attention to the return values of the callbacks, and so - // users must pay attention to what they return in their callbacks. - - HRESULT SetTransform( D3DTRANSFORMSTATETYPE State, D3DMATRIX *pMatrix) ; - HRESULT SetMaterial( D3DMATERIAL9 *pMaterial) ; - HRESULT SetLight( DWORD Index, D3DLIGHT9 *pLight) ; - HRESULT LightEnable( DWORD Index, BOOL Enable) ; - HRESULT SetRenderState( D3DRENDERSTATETYPE State, DWORD Value) ; - HRESULT SetTexture( DWORD Stage, IDirect3DBaseTexture9 pTexture) ; - HRESULT SetTextureStageState( DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value) ; - HRESULT SetSamplerState( DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) ; - HRESULT SetNPatchMode( FLOAT NumSegments) ; - HRESULT SetFVF( DWORD FVF) ; - HRESULT SetVertexShader( IDirect3DVertexShader9 pShader) ; - HRESULT SetVertexShaderConstantF( UINT RegisterIndex, FLOAT *pConstantData, UINT RegisterCount) ; - HRESULT SetVertexShaderConstantI( UINT RegisterIndex, INT *pConstantData, UINT RegisterCount) ; - HRESULT SetVertexShaderConstantB( UINT RegisterIndex, BOOL *pConstantData, UINT RegisterCount) ; - HRESULT SetPixelShader( IDirect3DPixelShader9 pShader) ; - HRESULT SetPixelShaderConstantF( UINT RegisterIndex, FLOAT *pConstantData, UINT RegisterCount) ; - HRESULT SetPixelShaderConstantI( UINT RegisterIndex, INT *pConstantData, UINT RegisterCount) ; - HRESULT SetPixelShaderConstantB( UINT RegisterIndex, BOOL *pConstantData, UINT RegisterCount) ; -} - -interface ID3DXInclude -{ - HRESULT Open(D3DXINCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes); - HRESULT Close(LPCVOID pData); -} - -// D3DX Functions --------------------------------------------------------------------------------------- -extern(Windows) -{ - uint D3DXGetShaderVersion(uint* pFunction); - - HRESULT D3DXCheckTextureRequirements( - IDirect3DDevice9 pDevice, - UINT* pWidth, - UINT* pHeight, - UINT* pNumMipLevels, - DWORD Usage, - D3DFORMAT* pFormat, - D3DPOOL Pool) ; - - HRESULT D3DXCreateTexture( - IDirect3DDevice9 pDevice, - UINT Width, - UINT Height, - UINT MipLevels, - DWORD Usage, - D3DFORMAT Format, - D3DPOOL Pool, - IDirect3DTexture9* ppTexture); - - HRESULT D3DXCreateCubeTexture( - IDirect3DDevice9 pDevice, - UINT Size, - UINT MipLevels, - DWORD Usage, - D3DFORMAT Format, - D3DPOOL Pool, - IDirect3DCubeTexture9* ppCubeTexture); - - HRESULT D3DXCreateTextureFromFileA( - LPDIRECT3DDEVICE9 pDevice, - LPCTSTR pSrcFile, - LPDIRECT3DTEXTURE9 * ppTexture); - - HRESULT D3DXCreateTextureFromFileExA( - IDirect3DDevice9 pDevice, - LPCSTR pSrcFile, - UINT Width, - UINT Height, - UINT MipLevels, - DWORD Usage, - D3DFORMAT Format, - D3DPOOL Pool, - DWORD Filter, - DWORD MipFilter, - D3DCOLOR ColorKey, - D3DXIMAGE_INFO* pSrcInfo, - PALETTEENTRY* pPalette, - IDirect3DTexture9* ppTexture); - - HRESULT D3DXCreateCubeTextureFromFileExA( - IDirect3DDevice9 pDevice, - LPCSTR pSrcFile, - UINT Size, - UINT MipLevels, - DWORD Usage, - D3DFORMAT Format, - D3DPOOL Pool, - DWORD Filter, - DWORD MipFilter, - D3DCOLOR ColorKey, - D3DXIMAGE_INFO* pSrcInfo, - PALETTEENTRY* pPalette, - IDirect3DCubeTexture9* ppCubeTexture); - - HRESULT D3DXSimplifyMesh( - ID3DXMesh pMesh, - DWORD* pAdjacency, - D3DXATTRIBUTEWEIGHTS *pVertexAttributeWeights, - FLOAT *pVertexWeights, - DWORD MinValue, - DWORD Options, - ID3DXMesh* ppMesh); - - HRESULT D3DXCreateSkinInfoFVF( - DWORD NumVertices, - DWORD FVF, - DWORD NumBones, - ID3DXSkinInfo* ppSkinInfo); - - D3DXVECTOR2* D3DXVec2TransformCoord( D3DXVECTOR2 *pOut, D3DXVECTOR2 *pV, D3DXMATRIX *pM ); - - D3DXVECTOR4* D3DXVec3Transform( D3DXVECTOR4 *pOut, D3DXVECTOR3 *pV, D3DXMATRIX *pM ); - - D3DXVECTOR3* D3DXVec3TransformCoord( D3DXVECTOR3 *pOut, D3DXVECTOR3 *pV, D3DXMATRIX *pM ); - - D3DXVECTOR4* D3DXVec4Transform( D3DXVECTOR4 *pOut, D3DXVECTOR4 *pV, D3DXMATRIX *pM ); - - D3DXMATRIX* D3DXMatrixTranspose( D3DXMATRIX *pOut, D3DXMATRIX *pM ); - - D3DXMATRIX* D3DXMatrixMultiply( D3DXMATRIX *pOut, D3DXMATRIX *pM1, D3DXMATRIX *pM2 ); - - D3DXMATRIX* D3DXMatrixInverse( D3DXMATRIX *pOut, FLOAT *pDeterminant, D3DXMATRIX *pM ); - - D3DXMATRIX* D3DXMatrixScaling( D3DXMATRIX *pOut, FLOAT sx, FLOAT sy, FLOAT sz ); - - D3DXMATRIX* D3DXMatrixTranslation( D3DXMATRIX *pOut, FLOAT x, FLOAT y, FLOAT z ); - - D3DXMATRIX* D3DXMatrixRotationX( D3DXMATRIX *pOut, FLOAT Angle ); - - D3DXMATRIX* D3DXMatrixRotationY( D3DXMATRIX *pOut, FLOAT Angle ); - - D3DXMATRIX* D3DXMatrixRotationZ( D3DXMATRIX *pOut, FLOAT Angle ); - - D3DXMATRIX* D3DXMatrixRotationQuaternion( D3DXMATRIX *pOut, D3DXQUATERNION *pQ); - - D3DXMATRIX* D3DXMatrixRotationYawPitchRoll( D3DXMATRIX *pOut, FLOAT Yaw, FLOAT Pitch, FLOAT Roll ); - - D3DXMATRIX* D3DXMatrixAffineTransformation2D( D3DXMATRIX *pOut, FLOAT Scaling, D3DXVECTOR2 *pRotationCenter, - float Rotation, D3DXVECTOR2 *pTranslation); - - D3DXMATRIX* D3DXMatrixPerspectiveFovLH( D3DXMATRIX *pOut, FLOAT fovy, FLOAT Aspect, FLOAT zn, FLOAT zf ); - - D3DXMATRIX* D3DXMatrixOrthoLH( D3DXMATRIX *pOut, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf ); - - D3DXMATRIX* D3DXMatrixOrthoOffCenterLH( D3DXMATRIX *pOut, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, - FLOAT zf ); - - void D3DXQuaternionToAxisAngle( D3DXQUATERNION *pQ, D3DXVECTOR3 *pAxis, FLOAT *pAngle ); - - D3DXQUATERNION* D3DXQuaternionRotationMatrix( D3DXQUATERNION *pOut, D3DXMATRIX *pM); - - D3DXQUATERNION* D3DXQuaternionNormalize( D3DXQUATERNION *pOut, D3DXQUATERNION *pQ ); - - D3DXPLANE* D3DXPlaneNormalize( D3DXPLANE *pOut, D3DXPLANE *pP); - - char* DXGetErrorDescription9A(HRESULT hr); - - HRESULT D3DXCreateEffectFromFileA( - IDirect3DDevice9 pDevice, - LPCSTR pSrcFile, - D3DXMACRO* pDefines, - ID3DXInclude pInclude, - DWORD Flags, - ID3DXEffectPool pPool, - ID3DXEffect* ppEffect, - ID3DXBuffer* ppCompilationErrors); - - D3DXMATRIX* D3DXMatrixTransformation2D( D3DXMATRIX *pOut, D3DXVECTOR2 *pScalingCenter, - float *pScalingRotation, D3DXVECTOR2 *pScaling, - D3DXVECTOR2 *pRotationCenter, float Rotation, - D3DXVECTOR2 *pTranslation); - - HRESULT D3DXLoadMeshFromXA( - LPCSTR pFilename, - DWORD Options, - IDirect3DDevice9 pD3D, - ID3DXBuffer *ppAdjacency, - ID3DXBuffer *ppMaterials, - ID3DXBuffer *ppEffectInstances, - DWORD *pNumMaterials, - ID3DXMesh *ppMesh); - - HRESULT D3DXCreatePolygon( - IDirect3DDevice9 pDevice, - FLOAT Length, - UINT Sides, - ID3DXMesh* ppMesh, - ID3DXBuffer* ppAdjacency); - - HRESULT D3DXCreateBox( - IDirect3DDevice9 pDevice, - FLOAT Width, - FLOAT Height, - FLOAT Depth, - ID3DXMesh* ppMesh, - ID3DXBuffer* ppAdjacency); - - HRESULT D3DXCreateCylinder( - IDirect3DDevice9 pDevice, - FLOAT Radius1, - FLOAT Radius2, - FLOAT Length, - UINT Slices, - UINT Stacks, - ID3DXMesh* ppMesh, - ID3DXBuffer* ppAdjacency); - - HRESULT D3DXCreateSphere( - IDirect3DDevice9 pDevice, - FLOAT Radius, - UINT Slices, - UINT Stacks, - ID3DXMesh* ppMesh, - ID3DXBuffer* ppAdjacency); - - HRESULT D3DXCreateTorus( - IDirect3DDevice9 pDevice, - FLOAT InnerRadius, - FLOAT OuterRadius, - UINT Sides, - UINT Rings, - ID3DXMesh* ppMesh, - ID3DXBuffer* ppAdjacency); - - HRESULT D3DXCreateTeapot( - IDirect3DDevice9 pDevice, - ID3DXMesh* ppMesh, - ID3DXBuffer* ppAdjacency); - - HRESULT D3DXCreateFontA( - IDirect3DDevice9 pDevice, - UINT Height, - UINT Width, - UINT Weight, - UINT MipLevels, - BOOL Italic, - DWORD CharSet, - DWORD OutputPrecision, - DWORD Quality, - DWORD PitchAndFamily, - LPCTSTR pFacename, - ID3DXFont *ppFont); - - HRESULT D3DXCreateSprite( - IDirect3DDevice9 pDevice, - ID3DXSprite* ppSprite) ; - - HRESULT D3DXCreateEffect( - IDirect3DDevice9 pDevice, - LPCVOID pSrcData, - UINT SrcDataLen, - D3DXMACRO* pDefines, - ID3DXInclude pInclude, - DWORD Flags, - ID3DXEffectPool pPool, - ID3DXEffect* ppEffect, - ID3DXBuffer* ppCompilationErrors); - - HRESULT D3DXCreateEffectPool( - ID3DXEffectPool* pEffectPool); - - HRESULT D3DXGetShaderInputSemantics( - DWORD* pFunction, - D3DXSEMANTIC* pSemantics, - UINT* pCount); - - HRESULT - D3DXCreateMeshFVF( - DWORD NumFaces, - DWORD NumVertices, - DWORD Options, - DWORD FVF, - IDirect3DDevice9 pD3DDevice, - ID3DXMesh* ppMesh); - - UINT D3DXGetFVFVertexSize(DWORD FVF); - - HRESULT D3DXFileCreate(ID3DXFile* lplpDirectXFile); - - HRESULT D3DXLoadMeshFromXof( - ID3DXFileData pxofMesh, - DWORD Options, - IDirect3DDevice9 pD3DDevice, - ID3DXBuffer *ppAdjacency, - ID3DXBuffer *ppMaterials, - ID3DXBuffer *ppEffectInstances, - DWORD *pNumMaterials, - ID3DXMesh *ppMesh); - - HRESULT D3DXConcatenateMeshes( - ID3DXMesh * ppMeshes, - UINT NumMeshes, - DWORD Options, - D3DXMATRIX * pGeomXForms, - D3DXMATRIX * pTextureXForms, - D3DVERTEXELEMENT9 * pDecl, - IDirect3DDevice9 pD3DDevice, - ID3DXMesh * ppMeshOut); - - HRESULT D3DXDeclaratorFromFVF(DWORD FVF, D3DVERTEXELEMENT9* Declaration); - - D3DXQUATERNION* D3DXQuaternionSlerp(D3DXQUATERNION* pOut, D3DXQUATERNION* pQ1, D3DXQUATERNION* pQ2, float t); - - D3DXVECTOR3* D3DXVec3CatmullRom(D3DXVECTOR3 *pOut, D3DXVECTOR3 *pV0, D3DXVECTOR3 *pV1, D3DXVECTOR3 *pV2, D3DXVECTOR3 *pV3, float s); - - void D3DXQuaternionSquadSetup( D3DXQUATERNION *pAOut, - D3DXQUATERNION *pBOut, - D3DXQUATERNION *pCOut, - D3DXQUATERNION *pQ0, - D3DXQUATERNION *pQ1, - D3DXQUATERNION *pQ2, - D3DXQUATERNION *pQ3); - - D3DXQUATERNION* D3DXQuaternionSquad(D3DXQUATERNION *pOut, - D3DXQUATERNION *pQ1, - D3DXQUATERNION *pA, - D3DXQUATERNION *pB, - D3DXQUATERNION *pC, - float t); - - HRESULT D3DXMatrixDecompose(D3DXVECTOR3 *pOutScale, - D3DXQUATERNION *pOutRotation, - D3DXVECTOR3 *pOutTranslation, - D3DXMATRIX *pM - ); - - D3DXQUATERNION* D3DXQuaternionRotationYawPitchRoll(D3DXQUATERNION *pOut, - FLOAT Yaw, - FLOAT Pitch, - FLOAT Roll - ); - - UINT D3DXGetDeclVertexSize(D3DVERTEXELEMENT9 *pDecl, DWORD Stream ); -} // extern(Windows) - -D3DXMATRIX* D3DXMatrixIdentity( D3DXMATRIX *pOut ) -{ - pOut.m[0][1] = pOut.m[0][2] = pOut.m[0][3] = - pOut.m[1][0] = pOut.m[1][2] = pOut.m[1][3] = - pOut.m[2][0] = pOut.m[2][1] = pOut.m[2][3] = - pOut.m[3][0] = pOut.m[3][1] = pOut.m[3][2] = 0.0f; - - pOut.m[0][0] = pOut.m[1][1] = pOut.m[2][2] = pOut.m[3][3] = 1.0f; - return pOut; -} - -FLOAT D3DXVec3LengthSq(D3DXVECTOR3* v) -{ - return (v.x * v.x) + (v.y * v.y) + (v.z * v.z); -} - -template DEFINE_GUID(uint d1, ushort d2, ushort d3, ubyte d4, ubyte d5, ubyte d6, ubyte d7, ubyte d8, ubyte d9, ubyte d10, ubyte d11) -{ - const GUID DEFINE_GUID = {d1, d2, d3, [d4, d5, d6, d7, d8, d9, d10, d11]}; -} - -const GUID TID_D3DRMInfo = DEFINE_GUID!(0x2b957100, 0x9e9a, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); -const GUID TID_D3DRMMesh = DEFINE_GUID!(0x3d82ab44, 0x62da, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); -const GUID TID_D3DRMVector = DEFINE_GUID!(0x3d82ab5e, 0x62da, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); -const GUID TID_D3DRMMeshFace = DEFINE_GUID!(0x3d82ab5f, 0x62da, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); -const GUID TID_D3DRMMaterial = DEFINE_GUID!(0x3d82ab4d, 0x62da, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); -const GUID TID_D3DRMMaterialArray = DEFINE_GUID!(0x35ff44e1, 0x6c7c, 0x11cf, 0x8F, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMFrame = DEFINE_GUID!(0x3d82ab46, 0x62da, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); -const GUID TID_D3DRMFrameTransformMatrix = DEFINE_GUID!(0xf6f23f41, 0x7686, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMMeshMaterialList = DEFINE_GUID!(0xf6f23f42, 0x7686, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMMeshTextureCoords = DEFINE_GUID!(0xf6f23f40, 0x7686, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMMeshNormals = DEFINE_GUID!(0xf6f23f43, 0x7686, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMCoords2d = DEFINE_GUID!(0xf6f23f44, 0x7686, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMMatrix4x4 = DEFINE_GUID!(0xf6f23f45, 0x7686, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMAnimation = DEFINE_GUID!(0x3d82ab4f, 0x62da, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); -const GUID TID_D3DRMAnimationSet = DEFINE_GUID!(0x3d82ab50, 0x62da, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); -const GUID TID_D3DRMAnimationKey = DEFINE_GUID!(0x10dd46a8, 0x775b, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xA3); -const GUID TID_D3DRMFloatKeys = DEFINE_GUID!(0x10dd46a9, 0x775b, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xA3); -const GUID TID_D3DRMMaterialAmbientColor = DEFINE_GUID!(0x01411840, 0x7786, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xA3); -const GUID TID_D3DRMMaterialDiffuseColor = DEFINE_GUID!(0x01411841, 0x7786, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xA3); -const GUID TID_D3DRMMaterialSpecularColor = DEFINE_GUID!(0x01411842, 0x7786, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xA3); -const GUID TID_D3DRMMaterialEmissiveColor = DEFINE_GUID!(0xd3e16e80, 0x7835, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMMaterialPower = DEFINE_GUID!(0x01411843, 0x7786, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xA3); -const GUID TID_D3DRMColorRGBA = DEFINE_GUID!(0x35ff44e0, 0x6c7c, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xA3); -const GUID TID_D3DRMColorRGB = DEFINE_GUID!(0xd3e16e81, 0x7835, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMGuid = DEFINE_GUID!(0xa42790e0, 0x7810, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMTextureFilename = DEFINE_GUID!(0xa42790e1, 0x7810, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMTextureReference = DEFINE_GUID!(0xa42790e2, 0x7810, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMIndexedColor = DEFINE_GUID!(0x1630b820, 0x7842, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMMeshVertexColors = DEFINE_GUID!(0x1630b821, 0x7842, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMMaterialWrap = DEFINE_GUID!(0x4885ae60, 0x78e8, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMBoolean = DEFINE_GUID!(0x537da6a0, 0xca37, 0x11d0, 0x94, 0x1c, 0x0, 0x80, 0xc8, 0xc, 0xfa, 0x7b); -const GUID TID_D3DRMMeshFaceWraps = DEFINE_GUID!(0xed1ec5c0, 0xc0a8, 0x11d0, 0x94, 0x1c, 0x0, 0x80, 0xc8, 0xc, 0xfa, 0x7b); -const GUID TID_D3DRMBoolean2d = DEFINE_GUID!(0x4885ae63, 0x78e8, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMTimedFloatKeys = DEFINE_GUID!(0xf406b180, 0x7b3b, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMAnimationOptions = DEFINE_GUID!(0xe2bf56c0, 0x840f, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMFramePosition = DEFINE_GUID!(0xe2bf56c1, 0x840f, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMFrameVelocity = DEFINE_GUID!(0xe2bf56c2, 0x840f, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMFrameRotation = DEFINE_GUID!(0xe2bf56c3, 0x840f, 0x11cf, 0x8f, 0x52, 0x0, 0x40, 0x33, 0x35, 0x94, 0xa3); -const GUID TID_D3DRMLight = DEFINE_GUID!(0x3d82ab4a, 0x62da, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); -const GUID TID_D3DRMCamera = DEFINE_GUID!(0x3d82ab51, 0x62da, 0x11cf, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); -const GUID TID_D3DRMAppData = DEFINE_GUID!(0xe5745280, 0xb24f, 0x11cf, 0x9d, 0xd5, 0x0, 0xaa, 0x0, 0xa7, 0x1a, 0x2f); -const GUID TID_D3DRMLightUmbra = DEFINE_GUID!(0xaed22740, 0xb31f, 0x11cf, 0x9d, 0xd5, 0x0, 0xaa, 0x0, 0xa7, 0x1a, 0x2f); -const GUID TID_D3DRMLightRange = DEFINE_GUID!(0xaed22742, 0xb31f, 0x11cf, 0x9d, 0xd5, 0x0, 0xaa, 0x0, 0xa7, 0x1a, 0x2f); -const GUID TID_D3DRMLightPenumbra = DEFINE_GUID!(0xaed22741, 0xb31f, 0x11cf, 0x9d, 0xd5, 0x0, 0xaa, 0x0, 0xa7, 0x1a, 0x2f); -const GUID TID_D3DRMLightAttenuation = DEFINE_GUID!(0xa8a98ba0, 0xc5e5, 0x11cf, 0xb9, 0x41, 0x0, 0x80, 0xc8, 0xc, 0xfa, 0x7b); -const GUID TID_D3DRMInlineData = DEFINE_GUID!(0x3a23eea0, 0x94b1, 0x11d0, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); -const GUID TID_D3DRMUrl = DEFINE_GUID!(0x3a23eea1, 0x94b1, 0x11d0, 0xab, 0x39, 0x0, 0x20, 0xaf, 0x71, 0xe4, 0x33); -const GUID TID_D3DRMProgressiveMesh = DEFINE_GUID!(0x8A63C360, 0x997D, 0x11d0, 0x94, 0x1C, 0x0, 0x80, 0xC8, 0x0C, 0xFA, 0x7B); -const GUID TID_D3DRMExternalVisual = DEFINE_GUID!(0x98116AA0, 0xBDBA, 0x11d1, 0x82, 0xC0, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x71); -const GUID TID_D3DRMStringProperty = DEFINE_GUID!(0x7f0f21e0, 0xbfe1, 0x11d1, 0x82, 0xc0, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x71); -const GUID TID_D3DRMPropertyBag = DEFINE_GUID!(0x7f0f21e1, 0xbfe1, 0x11d1, 0x82, 0xc0, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x71); -const GUID TID_D3DRMRightHanded = DEFINE_GUID!(0x7f5d5ea0, 0xd53a, 0x11d1, 0x82, 0xc0, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x71); - -ubyte[] D3DRM_XTEMPLATES = -[ - 0x78, 0x6f, 0x66, 0x20, 0x30, 0x33, 0x30, 0x32, 0x62, - 0x69, 0x6e, 0x20, 0x30, 0x30, 0x36, 0x34, 0x1f, 0, 0x1, - 0, 0x6, 0, 0, 0, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0xa, 0, 0x5, 0, 0x43, 0xab, 0x82, 0x3d, 0xda, - 0x62, 0xcf, 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, - 0x33, 0x28, 0, 0x1, 0, 0x5, 0, 0, 0, 0x6d, - 0x61, 0x6a, 0x6f, 0x72, 0x14, 0, 0x28, 0, 0x1, 0, - 0x5, 0, 0, 0, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x14, - 0, 0x29, 0, 0x1, 0, 0x5, 0, 0, 0, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x14, 0, 0xb, 0, 0x1f, 0, - 0x1, 0, 0x6, 0, 0, 0, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0xa, 0, 0x5, 0, 0x5e, 0xab, 0x82, 0x3d, - 0xda, 0x62, 0xcf, 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, - 0xe4, 0x33, 0x2a, 0, 0x1, 0, 0x1, 0, 0, 0, - 0x78, 0x14, 0, 0x2a, 0, 0x1, 0, 0x1, 0, 0, - 0, 0x79, 0x14, 0, 0x2a, 0, 0x1, 0, 0x1, 0, - 0, 0, 0x7a, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, - 0, 0x8, 0, 0, 0, 0x43, 0x6f, 0x6f, 0x72, 0x64, - 0x73, 0x32, 0x64, 0xa, 0, 0x5, 0, 0x44, 0x3f, 0xf2, - 0xf6, 0x86, 0x76, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, - 0x35, 0x94, 0xa3, 0x2a, 0, 0x1, 0, 0x1, 0, 0, - 0, 0x75, 0x14, 0, 0x2a, 0, 0x1, 0, 0x1, 0, - 0, 0, 0x76, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, - 0, 0x9, 0, 0, 0, 0x4d, 0x61, 0x74, 0x72, 0x69, - 0x78, 0x34, 0x78, 0x34, 0xa, 0, 0x5, 0, 0x45, 0x3f, - 0xf2, 0xf6, 0x86, 0x76, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, - 0x33, 0x35, 0x94, 0xa3, 0x34, 0, 0x2a, 0, 0x1, 0, - 0x6, 0, 0, 0, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, - 0xe, 0, 0x3, 0, 0x10, 0, 0, 0, 0xf, 0, - 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 0, 0x9, 0, - 0, 0, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x47, 0x42, - 0x41, 0xa, 0, 0x5, 0, 0xe0, 0x44, 0xff, 0x35, 0x7c, - 0x6c, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, - 0xa3, 0x2a, 0, 0x1, 0, 0x3, 0, 0, 0, 0x72, - 0x65, 0x64, 0x14, 0, 0x2a, 0, 0x1, 0, 0x5, 0, - 0, 0, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x14, 0, 0x2a, - 0, 0x1, 0, 0x4, 0, 0, 0, 0x62, 0x6c, 0x75, - 0x65, 0x14, 0, 0x2a, 0, 0x1, 0, 0x5, 0, 0, - 0, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x14, 0, 0xb, 0, - 0x1f, 0, 0x1, 0, 0x8, 0, 0, 0, 0x43, 0x6f, - 0x6c, 0x6f, 0x72, 0x52, 0x47, 0x42, 0xa, 0, 0x5, 0, - 0x81, 0x6e, 0xe1, 0xd3, 0x35, 0x78, 0xcf, 0x11, 0x8f, 0x52, - 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 0x2a, 0, 0x1, 0, - 0x3, 0, 0, 0, 0x72, 0x65, 0x64, 0x14, 0, 0x2a, - 0, 0x1, 0, 0x5, 0, 0, 0, 0x67, 0x72, 0x65, - 0x65, 0x6e, 0x14, 0, 0x2a, 0, 0x1, 0, 0x4, 0, - 0, 0, 0x62, 0x6c, 0x75, 0x65, 0x14, 0, 0xb, 0, - 0x1f, 0, 0x1, 0, 0xc, 0, 0, 0, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x65, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, - 0xa, 0, 0x5, 0, 0x20, 0xb8, 0x30, 0x16, 0x42, 0x78, - 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, - 0x29, 0, 0x1, 0, 0x5, 0, 0, 0, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x14, 0, 0x1, 0, 0x9, 0, 0, - 0, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x47, 0x42, 0x41, - 0x1, 0, 0xa, 0, 0, 0, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x14, 0, 0xb, 0, - 0x1f, 0, 0x1, 0, 0x7, 0, 0, 0, 0x42, 0x6f, - 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0xa, 0, 0x5, 0, 0xa0, - 0xa6, 0x7d, 0x53, 0x37, 0xca, 0xd0, 0x11, 0x94, 0x1c, 0, - 0x80, 0xc8, 0xc, 0xfa, 0x7b, 0x29, 0, 0x1, 0, 0x9, - 0, 0, 0, 0x74, 0x72, 0x75, 0x65, 0x66, 0x61, 0x6c, - 0x73, 0x65, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 0, - 0x9, 0, 0, 0, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, - 0x6e, 0x32, 0x64, 0xa, 0, 0x5, 0, 0x63, 0xae, 0x85, - 0x48, 0xe8, 0x78, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, - 0x35, 0x94, 0xa3, 0x1, 0, 0x7, 0, 0, 0, 0x42, - 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x1, 0, 0x1, 0, - 0, 0, 0x75, 0x14, 0, 0x1, 0, 0x7, 0, 0, - 0, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x1, 0, - 0x1, 0, 0, 0, 0x76, 0x14, 0, 0xb, 0, 0x1f, - 0, 0x1, 0, 0xc, 0, 0, 0, 0x4d, 0x61, 0x74, - 0x65, 0x72, 0x69, 0x61, 0x6c, 0x57, 0x72, 0x61, 0x70, 0xa, - 0, 0x5, 0, 0x60, 0xae, 0x85, 0x48, 0xe8, 0x78, 0xcf, - 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 0x1, - 0, 0x7, 0, 0, 0, 0x42, 0x6f, 0x6f, 0x6c, 0x65, - 0x61, 0x6e, 0x1, 0, 0x1, 0, 0, 0, 0x75, 0x14, - 0, 0x1, 0, 0x7, 0, 0, 0, 0x42, 0x6f, 0x6f, - 0x6c, 0x65, 0x61, 0x6e, 0x1, 0, 0x1, 0, 0, 0, - 0x76, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 0, 0xf, - 0, 0, 0, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, - 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0xa, 0, - 0x5, 0, 0xe1, 0x90, 0x27, 0xa4, 0x10, 0x78, 0xcf, 0x11, - 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 0x31, 0, - 0x1, 0, 0x8, 0, 0, 0, 0x66, 0x69, 0x6c, 0x65, - 0x6e, 0x61, 0x6d, 0x65, 0x14, 0, 0xb, 0, 0x1f, 0, - 0x1, 0, 0x8, 0, 0, 0, 0x4d, 0x61, 0x74, 0x65, - 0x72, 0x69, 0x61, 0x6c, 0xa, 0, 0x5, 0, 0x4d, 0xab, - 0x82, 0x3d, 0xda, 0x62, 0xcf, 0x11, 0xab, 0x39, 0, 0x20, - 0xaf, 0x71, 0xe4, 0x33, 0x1, 0, 0x9, 0, 0, 0, - 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x47, 0x42, 0x41, 0x1, - 0, 0x9, 0, 0, 0, 0x66, 0x61, 0x63, 0x65, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x14, 0, 0x2a, 0, 0x1, 0, - 0x5, 0, 0, 0, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x14, - 0, 0x1, 0, 0x8, 0, 0, 0, 0x43, 0x6f, 0x6c, - 0x6f, 0x72, 0x52, 0x47, 0x42, 0x1, 0, 0xd, 0, 0, - 0, 0x73, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x14, 0, 0x1, 0, 0x8, 0, - 0, 0, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x47, 0x42, - 0x1, 0, 0xd, 0, 0, 0, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x14, - 0, 0xe, 0, 0x12, 0, 0x12, 0, 0x12, 0, 0xf, - 0, 0xb, 0, 0x1f, 0, 0x1, 0, 0x8, 0, 0, - 0, 0x4d, 0x65, 0x73, 0x68, 0x46, 0x61, 0x63, 0x65, 0xa, - 0, 0x5, 0, 0x5f, 0xab, 0x82, 0x3d, 0xda, 0x62, 0xcf, - 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 0x33, 0x29, - 0, 0x1, 0, 0x12, 0, 0, 0, 0x6e, 0x46, 0x61, - 0x63, 0x65, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, - 0x64, 0x69, 0x63, 0x65, 0x73, 0x14, 0, 0x34, 0, 0x29, - 0, 0x1, 0, 0x11, 0, 0, 0, 0x66, 0x61, 0x63, - 0x65, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, - 0x69, 0x63, 0x65, 0x73, 0xe, 0, 0x1, 0, 0x12, 0, - 0, 0, 0x6e, 0x46, 0x61, 0x63, 0x65, 0x56, 0x65, 0x72, - 0x74, 0x65, 0x78, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, - 0xf, 0, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 0, - 0xd, 0, 0, 0, 0x4d, 0x65, 0x73, 0x68, 0x46, 0x61, - 0x63, 0x65, 0x57, 0x72, 0x61, 0x70, 0x73, 0xa, 0, 0x5, - 0, 0xc0, 0xc5, 0x1e, 0xed, 0xa8, 0xc0, 0xd0, 0x11, 0x94, - 0x1c, 0, 0x80, 0xc8, 0xc, 0xfa, 0x7b, 0x29, 0, 0x1, - 0, 0xf, 0, 0, 0, 0x6e, 0x46, 0x61, 0x63, 0x65, - 0x57, 0x72, 0x61, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x14, 0, 0x34, 0, 0x1, 0, 0x9, 0, 0, 0, - 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x32, 0x64, 0x1, - 0, 0xe, 0, 0, 0, 0x66, 0x61, 0x63, 0x65, 0x57, - 0x72, 0x61, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0xe, - 0, 0x1, 0, 0xf, 0, 0, 0, 0x6e, 0x46, 0x61, - 0x63, 0x65, 0x57, 0x72, 0x61, 0x70, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0xf, 0, 0x14, 0, 0xb, 0, 0x1f, 0, - 0x1, 0, 0x11, 0, 0, 0, 0x4d, 0x65, 0x73, 0x68, - 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6f, - 0x72, 0x64, 0x73, 0xa, 0, 0x5, 0, 0x40, 0x3f, 0xf2, - 0xf6, 0x86, 0x76, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, - 0x35, 0x94, 0xa3, 0x29, 0, 0x1, 0, 0xe, 0, 0, - 0, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, - 0x6f, 0x6f, 0x72, 0x64, 0x73, 0x14, 0, 0x34, 0, 0x1, - 0, 0x8, 0, 0, 0, 0x43, 0x6f, 0x6f, 0x72, 0x64, - 0x73, 0x32, 0x64, 0x1, 0, 0xd, 0, 0, 0, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6f, 0x72, - 0x64, 0x73, 0xe, 0, 0x1, 0, 0xe, 0, 0, 0, - 0x6e, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, - 0x6f, 0x72, 0x64, 0x73, 0xf, 0, 0x14, 0, 0xb, 0, - 0x1f, 0, 0x1, 0, 0x10, 0, 0, 0, 0x4d, 0x65, - 0x73, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, - 0x4c, 0x69, 0x73, 0x74, 0xa, 0, 0x5, 0, 0x42, 0x3f, - 0xf2, 0xf6, 0x86, 0x76, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, - 0x33, 0x35, 0x94, 0xa3, 0x29, 0, 0x1, 0, 0xa, 0, - 0, 0, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, - 0x6c, 0x73, 0x14, 0, 0x29, 0, 0x1, 0, 0xc, 0, - 0, 0, 0x6e, 0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x65, 0x73, 0x14, 0, 0x34, 0, 0x29, 0, - 0x1, 0, 0xb, 0, 0, 0, 0x66, 0x61, 0x63, 0x65, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0xe, 0, 0x1, - 0, 0xc, 0, 0, 0, 0x6e, 0x46, 0x61, 0x63, 0x65, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0xf, 0, 0x14, - 0, 0xe, 0, 0x1, 0, 0x8, 0, 0, 0, 0x4d, - 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0xf, 0, 0xb, - 0, 0x1f, 0, 0x1, 0, 0xb, 0, 0, 0, 0x4d, - 0x65, 0x73, 0x68, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x73, - 0xa, 0, 0x5, 0, 0x43, 0x3f, 0xf2, 0xf6, 0x86, 0x76, - 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, - 0x29, 0, 0x1, 0, 0x8, 0, 0, 0, 0x6e, 0x4e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x73, 0x14, 0, 0x34, 0, - 0x1, 0, 0x6, 0, 0, 0, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x1, 0, 0x7, 0, 0, 0, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x73, 0xe, 0, 0x1, 0, 0x8, - 0, 0, 0, 0x6e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x73, 0xf, 0, 0x14, 0, 0x29, 0, 0x1, 0, 0xc, - 0, 0, 0, 0x6e, 0x46, 0x61, 0x63, 0x65, 0x4e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x73, 0x14, 0, 0x34, 0, 0x1, - 0, 0x8, 0, 0, 0, 0x4d, 0x65, 0x73, 0x68, 0x46, - 0x61, 0x63, 0x65, 0x1, 0, 0xb, 0, 0, 0, 0x66, - 0x61, 0x63, 0x65, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x73, - 0xe, 0, 0x1, 0, 0xc, 0, 0, 0, 0x6e, 0x46, - 0x61, 0x63, 0x65, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x73, - 0xf, 0, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 0, - 0x10, 0, 0, 0, 0x4d, 0x65, 0x73, 0x68, 0x56, 0x65, - 0x72, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x73, - 0xa, 0, 0x5, 0, 0x21, 0xb8, 0x30, 0x16, 0x42, 0x78, - 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, - 0x29, 0, 0x1, 0, 0xd, 0, 0, 0, 0x6e, 0x56, - 0x65, 0x72, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, - 0x73, 0x14, 0, 0x34, 0, 0x1, 0, 0xc, 0, 0, - 0, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x43, 0x6f, - 0x6c, 0x6f, 0x72, 0x1, 0, 0xc, 0, 0, 0, 0x76, - 0x65, 0x72, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, - 0x73, 0xe, 0, 0x1, 0, 0xd, 0, 0, 0, 0x6e, - 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, - 0x72, 0x73, 0xf, 0, 0x14, 0, 0xb, 0, 0x1f, 0, - 0x1, 0, 0x4, 0, 0, 0, 0x4d, 0x65, 0x73, 0x68, - 0xa, 0, 0x5, 0, 0x44, 0xab, 0x82, 0x3d, 0xda, 0x62, - 0xcf, 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 0x33, - 0x29, 0, 0x1, 0, 0x9, 0, 0, 0, 0x6e, 0x56, - 0x65, 0x72, 0x74, 0x69, 0x63, 0x65, 0x73, 0x14, 0, 0x34, - 0, 0x1, 0, 0x6, 0, 0, 0, 0x56, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x1, 0, 0x8, 0, 0, 0, 0x76, - 0x65, 0x72, 0x74, 0x69, 0x63, 0x65, 0x73, 0xe, 0, 0x1, - 0, 0x9, 0, 0, 0, 0x6e, 0x56, 0x65, 0x72, 0x74, - 0x69, 0x63, 0x65, 0x73, 0xf, 0, 0x14, 0, 0x29, 0, - 0x1, 0, 0x6, 0, 0, 0, 0x6e, 0x46, 0x61, 0x63, - 0x65, 0x73, 0x14, 0, 0x34, 0, 0x1, 0, 0x8, 0, - 0, 0, 0x4d, 0x65, 0x73, 0x68, 0x46, 0x61, 0x63, 0x65, - 0x1, 0, 0x5, 0, 0, 0, 0x66, 0x61, 0x63, 0x65, - 0x73, 0xe, 0, 0x1, 0, 0x6, 0, 0, 0, 0x6e, - 0x46, 0x61, 0x63, 0x65, 0x73, 0xf, 0, 0x14, 0, 0xe, - 0, 0x12, 0, 0x12, 0, 0x12, 0, 0xf, 0, 0xb, - 0, 0x1f, 0, 0x1, 0, 0x14, 0, 0, 0, 0x46, - 0x72, 0x61, 0x6d, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x6f, 0x72, 0x6d, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0xa, - 0, 0x5, 0, 0x41, 0x3f, 0xf2, 0xf6, 0x86, 0x76, 0xcf, - 0x11, 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 0x1, - 0, 0x9, 0, 0, 0, 0x4d, 0x61, 0x74, 0x72, 0x69, - 0x78, 0x34, 0x78, 0x34, 0x1, 0, 0xb, 0, 0, 0, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, - 0x78, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, 0, 0x5, - 0, 0, 0, 0x46, 0x72, 0x61, 0x6d, 0x65, 0xa, 0, - 0x5, 0, 0x46, 0xab, 0x82, 0x3d, 0xda, 0x62, 0xcf, 0x11, - 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 0x33, 0xe, 0, - 0x12, 0, 0x12, 0, 0x12, 0, 0xf, 0, 0xb, 0, - 0x1f, 0, 0x1, 0, 0x9, 0, 0, 0, 0x46, 0x6c, - 0x6f, 0x61, 0x74, 0x4b, 0x65, 0x79, 0x73, 0xa, 0, 0x5, - 0, 0xa9, 0x46, 0xdd, 0x10, 0x5b, 0x77, 0xcf, 0x11, 0x8f, - 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 0x29, 0, 0x1, - 0, 0x7, 0, 0, 0, 0x6e, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x14, 0, 0x34, 0, 0x2a, 0, 0x1, 0, - 0x6, 0, 0, 0, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0xe, 0, 0x1, 0, 0x7, 0, 0, 0, 0x6e, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0xf, 0, 0x14, 0, 0xb, - 0, 0x1f, 0, 0x1, 0, 0xe, 0, 0, 0, 0x54, - 0x69, 0x6d, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x4b, - 0x65, 0x79, 0x73, 0xa, 0, 0x5, 0, 0x80, 0xb1, 0x6, - 0xf4, 0x3b, 0x7b, 0xcf, 0x11, 0x8f, 0x52, 0, 0x40, 0x33, - 0x35, 0x94, 0xa3, 0x29, 0, 0x1, 0, 0x4, 0, 0, - 0, 0x74, 0x69, 0x6d, 0x65, 0x14, 0, 0x1, 0, 0x9, - 0, 0, 0, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x4b, 0x65, - 0x79, 0x73, 0x1, 0, 0x6, 0, 0, 0, 0x74, 0x66, - 0x6b, 0x65, 0x79, 0x73, 0x14, 0, 0xb, 0, 0x1f, 0, - 0x1, 0, 0xc, 0, 0, 0, 0x41, 0x6e, 0x69, 0x6d, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0xa, 0, - 0x5, 0, 0xa8, 0x46, 0xdd, 0x10, 0x5b, 0x77, 0xcf, 0x11, - 0x8f, 0x52, 0, 0x40, 0x33, 0x35, 0x94, 0xa3, 0x29, 0, - 0x1, 0, 0x7, 0, 0, 0, 0x6b, 0x65, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x14, 0, 0x29, 0, 0x1, 0, 0x5, - 0, 0, 0, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x14, 0, - 0x34, 0, 0x1, 0, 0xe, 0, 0, 0, 0x54, 0x69, - 0x6d, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x4b, 0x65, - 0x79, 0x73, 0x1, 0, 0x4, 0, 0, 0, 0x6b, 0x65, - 0x79, 0x73, 0xe, 0, 0x1, 0, 0x5, 0, 0, 0, - 0x6e, 0x4b, 0x65, 0x79, 0x73, 0xf, 0, 0x14, 0, 0xb, - 0, 0x1f, 0, 0x1, 0, 0x10, 0, 0, 0, 0x41, - 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0xa, 0, 0x5, 0, 0xc0, - 0x56, 0xbf, 0xe2, 0xf, 0x84, 0xcf, 0x11, 0x8f, 0x52, 0, - 0x40, 0x33, 0x35, 0x94, 0xa3, 0x29, 0, 0x1, 0, 0xa, - 0, 0, 0, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6c, 0x6f, - 0x73, 0x65, 0x64, 0x14, 0, 0x29, 0, 0x1, 0, 0xf, - 0, 0, 0, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x14, 0, - 0xb, 0, 0x1f, 0, 0x1, 0, 0x9, 0, 0, 0, - 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xa, - 0, 0x5, 0, 0x4f, 0xab, 0x82, 0x3d, 0xda, 0x62, 0xcf, - 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 0x33, 0xe, - 0, 0x12, 0, 0x12, 0, 0x12, 0, 0xf, 0, 0xb, - 0, 0x1f, 0, 0x1, 0, 0xc, 0, 0, 0, 0x41, - 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x74, 0xa, 0, 0x5, 0, 0x50, 0xab, 0x82, 0x3d, 0xda, - 0x62, 0xcf, 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, - 0x33, 0xe, 0, 0x1, 0, 0x9, 0, 0, 0, 0x41, - 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xf, 0, - 0xb, 0, 0x1f, 0, 0x1, 0, 0xa, 0, 0, 0, - 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, - 0xa, 0, 0x5, 0, 0xa0, 0xee, 0x23, 0x3a, 0xb1, 0x94, - 0xd0, 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 0x33, - 0xe, 0, 0x1, 0, 0x6, 0, 0, 0, 0x42, 0x49, - 0x4e, 0x41, 0x52, 0x59, 0xf, 0, 0xb, 0, 0x1f, 0, - 0x1, 0, 0x3, 0, 0, 0, 0x55, 0x72, 0x6c, 0xa, - 0, 0x5, 0, 0xa1, 0xee, 0x23, 0x3a, 0xb1, 0x94, 0xd0, - 0x11, 0xab, 0x39, 0, 0x20, 0xaf, 0x71, 0xe4, 0x33, 0x29, - 0, 0x1, 0, 0x5, 0, 0, 0, 0x6e, 0x55, 0x72, - 0x6c, 0x73, 0x14, 0, 0x34, 0, 0x31, 0, 0x1, 0, - 0x4, 0, 0, 0, 0x75, 0x72, 0x6c, 0x73, 0xe, 0, - 0x1, 0, 0x5, 0, 0, 0, 0x6e, 0x55, 0x72, 0x6c, - 0x73, 0xf, 0, 0x14, 0, 0xb, 0, 0x1f, 0, 0x1, - 0, 0xf, 0, 0, 0, 0x50, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x68, - 0xa, 0, 0x5, 0, 0x60, 0xc3, 0x63, 0x8a, 0x7d, 0x99, - 0xd0, 0x11, 0x94, 0x1c, 0, 0x80, 0xc8, 0xc, 0xfa, 0x7b, - 0xe, 0, 0x1, 0, 0x3, 0, 0, 0, 0x55, 0x72, - 0x6c, 0x13, 0, 0x1, 0, 0xa, 0, 0, 0, 0x49, - 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0xf, - 0, 0xb, 0, 0x1f, 0, 0x1, 0, 0x4, 0, 0, - 0, 0x47, 0x75, 0x69, 0x64, 0xa, 0, 0x5, 0, 0xe0, - 0x90, 0x27, 0xa4, 0x10, 0x78, 0xcf, 0x11, 0x8f, 0x52, 0, - 0x40, 0x33, 0x35, 0x94, 0xa3, 0x29, 0, 0x1, 0, 0x5, - 0, 0, 0, 0x64, 0x61, 0x74, 0x61, 0x31, 0x14, 0, - 0x28, 0, 0x1, 0, 0x5, 0, 0, 0, 0x64, 0x61, - 0x74, 0x61, 0x32, 0x14, 0, 0x28, 0, 0x1, 0, 0x5, - 0, 0, 0, 0x64, 0x61, 0x74, 0x61, 0x33, 0x14, 0, - 0x34, 0, 0x2d, 0, 0x1, 0, 0x5, 0, 0, 0, - 0x64, 0x61, 0x74, 0x61, 0x34, 0xe, 0, 0x3, 0, 0x8, - 0, 0, 0, 0xf, 0, 0x14, 0, 0xb, 0, 0x1f, - 0, 0x1, 0, 0xe, 0, 0, 0, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0xa, 0, 0x5, 0, 0xe0, 0x21, 0xf, 0x7f, 0xe1, - 0xbf, 0xd1, 0x11, 0x82, 0xc0, 0, 0xa0, 0xc9, 0x69, 0x72, - 0x71, 0x31, 0, 0x1, 0, 0x3, 0, 0, 0, 0x6b, - 0x65, 0x79, 0x14, 0, 0x31, 0, 0x1, 0, 0x5, 0, - 0, 0, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x14, 0, 0xb, - 0, 0x1f, 0, 0x1, 0, 0xb, 0, 0, 0, 0x50, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x42, 0x61, 0x67, - 0xa, 0, 0x5, 0, 0xe1, 0x21, 0xf, 0x7f, 0xe1, 0xbf, - 0xd1, 0x11, 0x82, 0xc0, 0, 0xa0, 0xc9, 0x69, 0x72, 0x71, - 0xe, 0, 0x1, 0, 0xe, 0, 0, 0, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0xf, 0, 0xb, 0, 0x1f, 0, 0x1, 0, - 0xe, 0, 0, 0, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x56, 0x69, 0x73, 0x75, 0x61, 0x6c, 0xa, 0, - 0x5, 0, 0xa0, 0x6a, 0x11, 0x98, 0xba, 0xbd, 0xd1, 0x11, - 0x82, 0xc0, 0, 0xa0, 0xc9, 0x69, 0x72, 0x71, 0x1, 0, - 0x4, 0, 0, 0, 0x47, 0x75, 0x69, 0x64, 0x1, 0, - 0x12, 0, 0, 0, 0x67, 0x75, 0x69, 0x64, 0x45, 0x78, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x56, 0x69, 0x73, 0x75, - 0x61, 0x6c, 0x14, 0, 0xe, 0, 0x12, 0, 0x12, 0, - 0x12, 0, 0xf, 0, 0xb, 0, 0x1f, 0, 0x1, 0, - 0xb, 0, 0, 0, 0x52, 0x69, 0x67, 0x68, 0x74, 0x48, - 0x61, 0x6e, 0x64, 0x65, 0x64, 0xa, 0, 0x5, 0, 0xa0, - 0x5e, 0x5d, 0x7f, 0x3a, 0xd5, 0xd1, 0x11, 0x82, 0xc0, 0, - 0xa0, 0xc9, 0x69, 0x72, 0x71, 0x29, 0, 0x1, 0, 0xc, - 0, 0, 0, 0x62, 0x52, 0x69, 0x67, 0x68, 0x74, 0x48, - 0x61, 0x6e, 0x64, 0x65, 0x64, 0x14, 0, 0xb, 0 -]; - -const GUID DXFILEOBJ_XSkinMeshHeader = DEFINE_GUID!(0x3cf169ce, 0xff7c, 0x44ab, 0x93, 0xc0, 0xf7, 0x8f, 0x62, 0xd1, 0x72, 0xe2); -const GUID DXFILEOBJ_VertexDuplicationIndices = DEFINE_GUID!(0xb8d65549, 0xd7c9, 0x4995, 0x89, 0xcf, 0x53, 0xa9, 0xa8, 0xb0, 0x31, 0xe3); -const GUID DXFILEOBJ_FaceAdjacency = DEFINE_GUID!(0xa64c844a, 0xe282, 0x4756, 0x8b, 0x80, 0x25, 0xc, 0xde, 0x4, 0x39, 0x8c); -const GUID DXFILEOBJ_SkinWeights = DEFINE_GUID!(0x6f0d123b, 0xbad2, 0x4167, 0xa0, 0xd0, 0x80, 0x22, 0x4f, 0x25, 0xfa, 0xbb); -const GUID DXFILEOBJ_Patch = DEFINE_GUID!(0xa3eb5d44, 0xfc22, 0x429d, 0x9a, 0xfb, 0x32, 0x21, 0xcb, 0x97, 0x19, 0xa6); -const GUID DXFILEOBJ_PatchMesh = DEFINE_GUID!(0xd02c95cc, 0xedba, 0x4305, 0x9b, 0x5d, 0x18, 0x20, 0xd7, 0x70, 0x4b, 0xbf); -const GUID DXFILEOBJ_PatchMesh9 = DEFINE_GUID!(0xb9ec94e1, 0xb9a6, 0x4251, 0xba, 0x18, 0x94, 0x89, 0x3f, 0x2, 0xc0, 0xea); -const GUID DXFILEOBJ_PMInfo = DEFINE_GUID!(0xb6c3e656, 0xec8b, 0x4b92, 0x9b, 0x62, 0x68, 0x16, 0x59, 0x52, 0x29, 0x47); -const GUID DXFILEOBJ_PMAttributeRange = DEFINE_GUID!(0x917e0427, 0xc61e, 0x4a14, 0x9c, 0x64, 0xaf, 0xe6, 0x5f, 0x9e, 0x98, 0x44); -const GUID DXFILEOBJ_PMVSplitRecord = DEFINE_GUID!(0x574ccc14, 0xf0b3, 0x4333, 0x82, 0x2d, 0x93, 0xe8, 0xa8, 0xa0, 0x8e, 0x4c); -const GUID DXFILEOBJ_FVFData = DEFINE_GUID!(0xb6e70a0e, 0x8ef9, 0x4e83, 0x94, 0xad, 0xec, 0xc8, 0xb0, 0xc0, 0x48, 0x97); -const GUID DXFILEOBJ_VertexElement = DEFINE_GUID!(0xf752461c, 0x1e23, 0x48f6, 0xb9, 0xf8, 0x83, 0x50, 0x85, 0xf, 0x33, 0x6f); -const GUID DXFILEOBJ_DeclData = DEFINE_GUID!(0xbf22e553, 0x292c, 0x4781, 0x9f, 0xea, 0x62, 0xbd, 0x55, 0x4b, 0xdd, 0x93); -const GUID DXFILEOBJ_EffectFloats = DEFINE_GUID!(0xf1cfe2b3, 0xde3, 0x4e28, 0xaf, 0xa1, 0x15, 0x5a, 0x75, 0xa, 0x28, 0x2d); -const GUID DXFILEOBJ_EffectString = DEFINE_GUID!(0xd55b097e, 0xbdb6, 0x4c52, 0xb0, 0x3d, 0x60, 0x51, 0xc8, 0x9d, 0xe, 0x42); -const GUID DXFILEOBJ_EffectDWord = DEFINE_GUID!(0x622c0ed0, 0x956e, 0x4da9, 0x90, 0x8a, 0x2a, 0xf9, 0x4f, 0x3c, 0xe7, 0x16); -const GUID DXFILEOBJ_EffectParamFloats = DEFINE_GUID!(0x3014b9a0, 0x62f5, 0x478c, 0x9b, 0x86, 0xe4, 0xac, 0x9f, 0x4e, 0x41, 0x8b); -const GUID DXFILEOBJ_EffectParamString = DEFINE_GUID!(0x1dbc4c88, 0x94c1, 0x46ee, 0x90, 0x76, 0x2c, 0x28, 0x81, 0x8c, 0x94, 0x81); -const GUID DXFILEOBJ_EffectParamDWord = DEFINE_GUID!(0xe13963bc, 0xae51, 0x4c5d, 0xb0, 0xf, 0xcf, 0xa3, 0xa9, 0xd9, 0x7c, 0xe5); -const GUID DXFILEOBJ_EffectInstance = DEFINE_GUID!(0xe331f7e4, 0x559, 0x4cc2, 0x8e, 0x99, 0x1c, 0xec, 0x16, 0x57, 0x92, 0x8f); -const GUID DXFILEOBJ_AnimTicksPerSecond = DEFINE_GUID!(0x9e415a43, 0x7ba6, 0x4a73, 0x87, 0x43, 0xb7, 0x3d, 0x47, 0xe8, 0x84, 0x76); -const GUID DXFILEOBJ_CompressedAnimationSet = DEFINE_GUID!(0x7f9b00b3, 0xf125, 0x4890, 0x87, 0x6e, 0x1c, 0x42, 0xbf, 0x69, 0x7c, 0x4d); - -align(1) struct XFILECOMPRESSEDANIMATIONSET -{ - DWORD CompressedBlockSize; - FLOAT TicksPerSec; - DWORD PlaybackType; - DWORD BufferLength; -} - -const char[] XSKINEXP_TEMPLATES = - "xof 0303txt 0032 - template XSkinMeshHeader - { - <3CF169CE-FF7C-44ab-93C0-F78F62D172E2> - WORD nMaxSkinWeightsPerVertex; - WORD nMaxSkinWeightsPerFace; - WORD nBones; - } - template VertexDuplicationIndices - { - - DWORD nIndices; - DWORD nOriginalVertices; - array DWORD[nIndices] indices; - } - template FaceAdjacency - { - - DWORD nIndices; - array DWORD[nIndices] indices; - } - template SkinWeights - { - <6F0D123B-BAD2-4167-A0D0-80224F25FABB> - STRING transformNodeName; - DWORD nWeights; - array DWORD[nWeights] vertexIndices; - array float[nWeights] weights; - Matrix4x4 matrixOffset; - } - template Patch - { - - DWORD nControlIndices; - array DWORD[nControlIndices] controlIndices; - } - template PatchMesh - { - - DWORD nVertices; - array Vector[nVertices] vertices; - DWORD nPatches; - array Patch[nPatches] patches; - [ ... ] - } - template PatchMesh9 - { - - DWORD Type; - DWORD Degree; - DWORD Basis; - DWORD nVertices; - array Vector[nVertices] vertices; - DWORD nPatches; - array Patch[nPatches] patches; - [ ... ] - } " - "template EffectFloats - { - - DWORD nFloats; - array float[nFloats] Floats; - } - template EffectString - { - - STRING Value; - } - template EffectDWord - { - <622C0ED0-956E-4da9-908A-2AF94F3CE716> - DWORD Value; - } " - "template EffectParamFloats - { - <3014B9A0-62F5-478c-9B86-E4AC9F4E418B> - STRING ParamName; - DWORD nFloats; - array float[nFloats] Floats; - } " - "template EffectParamString - { - <1DBC4C88-94C1-46ee-9076-2C28818C9481> - STRING ParamName; - STRING Value; - } - template EffectParamDWord - { - - STRING ParamName; - DWORD Value; - } - template EffectInstance - { - - STRING EffectFilename; - [ ... ] - } " - "template AnimTicksPerSecond - { - <9E415A43-7BA6-4a73-8743-B73D47E88476> - DWORD AnimTicksPerSecond; - } - template CompressedAnimationSet - { - <7F9B00B3-F125-4890-876E-1C42BF697C4D> - DWORD CompressedBlockSize; - FLOAT TicksPerSec; - DWORD PlaybackType; - DWORD BufferLength; - array DWORD[BufferLength] CompressedData; - } "; - -const char[] XEXTENSIONS_TEMPLATES = - "xof 0303txt 0032 - template FVFData - { - - DWORD dwFVF; - DWORD nDWords; - array DWORD[nDWords] data; - } - template VertexElement - { - - DWORD Type; - DWORD Method; - DWORD Usage; - DWORD UsageIndex; - } - template DeclData - { - - DWORD nElements; - array VertexElement[nElements] Elements; - DWORD nDWords; - array DWORD[nDWords] data; - } - template PMAttributeRange - { - <917E0427-C61E-4a14-9C64-AFE65F9E9844> - DWORD iFaceOffset; - DWORD nFacesMin; - DWORD nFacesMax; - DWORD iVertexOffset; - DWORD nVerticesMin; - DWORD nVerticesMax; - } - template PMVSplitRecord - { - <574CCC14-F0B3-4333-822D-93E8A8A08E4C> - DWORD iFaceCLW; - DWORD iVlrOffset; - DWORD iCode; - } - template PMInfo - { - - DWORD nAttributes; - array PMAttributeRange[nAttributes] attributeRanges; - DWORD nMaxValence; - DWORD nMinLogicalVertices; - DWORD nMaxLogicalVertices; - DWORD nVSplits; - array PMVSplitRecord[nVSplits] splitRecords; - DWORD nAttributeMispredicts; - array DWORD[nAttributeMispredicts] attributeMispredicts; - } "; - -enum : uint -{ - D3DXF_FILEFORMAT_BINARY = 0, - D3DXF_FILEFORMAT_TEXT = 1, - D3DXF_FILEFORMAT_COMPRESSED = 2 -} -alias uint D3DXF_FILEFORMAT; - -enum : uint -{ - D3DXF_FILESAVE_TOFILE = 0x00L, - D3DXF_FILESAVE_TOWFILE = 0x01L -} -alias uint D3DXF_FILESAVEOPTIONS; - -enum : uint -{ - D3DXF_FILELOAD_FROMFILE = 0x00L, - D3DXF_FILELOAD_FROMWFILE = 0x01L, - D3DXF_FILELOAD_FROMRESOURCE = 0x02L, - D3DXF_FILELOAD_FROMMEMORY = 0x03L -} -alias uint D3DXF_FILELOADOPTIONS; - -struct D3DXF_FILELOADRESOURCE -{ - HMODULE hModule; // Desc - LPCSTR lpName; // Desc - LPCSTR lpType; // Desc -} - -struct D3DXF_FILELOADMEMORY -{ - LPCVOID lpMemory; // Desc - size_t dSize; // Desc -} - -const GUID IID_ID3DXFile = DEFINE_GUID!(0xcef08cf9, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01 ); -const GUID IID_ID3DXFileSaveObject = DEFINE_GUID!(0xcef08cfa, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01 ); -const GUID IID_ID3DXFileSaveData = DEFINE_GUID!(0xcef08cfb, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01 ); -const GUID IID_ID3DXFileEnumObject = DEFINE_GUID!(0xcef08cfc, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01 ); -const GUID IID_ID3DXFileData = DEFINE_GUID!(0xcef08cfd, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01 ); - -interface ID3DXFile : IUnknown -{ - HRESULT CreateEnumObject(LPCVOID, D3DXF_FILELOADOPTIONS, ID3DXFileEnumObject*); - HRESULT CreateSaveObject(LPCVOID, D3DXF_FILESAVEOPTIONS, D3DXF_FILEFORMAT, ID3DXFileSaveObject*); - HRESULT RegisterTemplates(LPCVOID, size_t); - HRESULT RegisterEnumTemplates(ID3DXFileEnumObject); -} - -interface ID3DXFileSaveObject : IUnknown -{ - HRESULT GetFile(ID3DXFile*); - HRESULT AddDataObject(GUID*, LPCSTR, GUID*, size_t, LPCVOID, ID3DXFileSaveData*); - HRESULT Save(); -} - -interface ID3DXFileSaveData : IUnknown -{ - HRESULT GetSave(ID3DXFileSaveObject*); - HRESULT GetName(LPSTR, size_t*); - HRESULT GetId(GUID*); - HRESULT GetType(GUID*); - HRESULT AddDataObject(GUID*, LPCSTR, GUID*, size_t, LPCVOID, ID3DXFileSaveData*); - HRESULT AddDataReference(LPCSTR, GUID* ); -} - -interface ID3DXFileEnumObject : IUnknown -{ - HRESULT GetFile(ID3DXFile*); - HRESULT GetChildren(size_t*); - HRESULT GetChild(size_t, ID3DXFileData*); - HRESULT GetDataObjectById(REFGUID, ID3DXFileData*); - HRESULT GetDataObjectByName(LPCSTR, ID3DXFileData*); -} - -interface ID3DXFileData : IUnknown -{ - HRESULT GetEnum(ID3DXFileEnumObject*); - HRESULT GetName(LPSTR, size_t*); - HRESULT GetId(GUID*); - HRESULT Lock(size_t*, LPCVOID*); - HRESULT Unlock(); - HRESULT GetType(GUID*); - BOOL IsReference(); - HRESULT GetChildren(size_t*); - HRESULT GetChild(size_t, ID3DXFileData*); -} DELETED src/win32/directx/d3dx9.def Index: src/win32/directx/d3dx9.def ================================================================== --- src/win32/directx/d3dx9.def +++ src/win32/directx/d3dx9.def @@ -1,48 +0,0 @@ -IMPORTS -_D3DXConcatenateMeshes@32 = d3dx9_29.D3DXConcatenateMeshes -_D3DXCreateBox@24 = d3dx9_29.D3DXCreateBox -_D3DXCreateCubeTexture@28 = d3dx9_29.D3DXCreateCubeTexture -_D3DXCreateCubeTextureFromFileExA@52 = d3dx9_29.D3DXCreateCubeTextureFromFileExA -_D3DXCreateCylinder@32 = d3dx9_29.D3DXCreateCylinder -_D3DXCreateFontA@48 = d3dx9_29.D3DXCreateFontA -_D3DXCreatePolygon@20 = d3dx9_29.D3DXCreatePolygon -_D3DXCreateSkinInfoFVF@16 = d3dx9_29.D3DXCreateSkinInfoFVF -_D3DXCreateSphere@24 = d3dx9_29.D3DXCreateSphere -_D3DXCreateSprite@8 = d3dx9_29.D3DXCreateSprite -_D3DXCreateTeapot@12 = d3dx9_29.D3DXCreateTeapot -_D3DXCreateTexture@32 = d3dx9_29.D3DXCreateTexture -_D3DXCreateTextureFromFileExA@56 = d3dx9_29.D3DXCreateTextureFromFileExA -_D3DXCreateTextureFromFileA@12 = d3dx9_29.D3DXCreateTextureFromFileA -_D3DXCreateTorus@28 = d3dx9_29.D3DXCreateTorus -_D3DXFileCreate@4 = d3dx9_29.D3DXFileCreate -_D3DXGetDeclVertexSize@8 = d3dx9_29.D3DXGetDeclVertexSize -_D3DXLoadMeshFromXof@32 = d3dx9_29.D3DXLoadMeshFromXof -_D3DXMatrixDecompose@16 = d3dx9_29.D3DXMatrixDecompose -_D3DXMatrixInverse@12 = d3dx9_29.D3DXMatrixInverse -_D3DXMatrixMultiply@12 = d3dx9_29.D3DXMatrixMultiply -_D3DXMatrixOrthoOffCenterLH@28 = d3dx9_29.D3DXMatrixOrthoOffCenterLH -_D3DXMatrixPerspectiveFovLH@20 = d3dx9_29.D3DXMatrixPerspectiveFovLH -_D3DXMatrixRotationQuaternion@8 = d3dx9_29.D3DXMatrixRotationQuaternion -_D3DXMatrixRotationX@8 = d3dx9_29.D3DXMatrixRotationX -_D3DXMatrixRotationY@8 = d3dx9_29.D3DXMatrixRotationY -_D3DXMatrixRotationYawPitchRoll@16 = d3dx9_29.D3DXMatrixRotationYawPitchRoll -_D3DXMatrixRotationZ@8 = d3dx9_29.D3DXMatrixRotationZ -_D3DXMatrixScaling@16 = d3dx9_29.D3DXMatrixScaling -_D3DXMatrixTransformation2D@28 = d3dx9_29.D3DXMatrixTransformation2D -_D3DXMatrixTranslation@16 = d3dx9_29.D3DXMatrixTranslation -_D3DXPlaneNormalize@8 = d3dx9_29.D3DXPlaneNormalize -_D3DXQuaternionNormalize@8 = d3dx9_29.D3DXQuaternionNormalize -_D3DXQuaternionRotationYawPitchRoll@16 = d3dx9_29.D3DXQuaternionRotationYawPitchRoll -_D3DXQuaternionSlerp@16 = d3dx9_29.D3DXQuaternionSlerp -_D3DXQuaternionSquad@24 = d3dx9_29.D3DXQuaternionSquad -_D3DXQuaternionSquadSetup@28 = d3dx9_29.D3DXQuaternionSquadSetup -_D3DXSimplifyMesh@28 = d3dx9_29.D3DXSimplifyMesh -_D3DXVec2TransformCoord@12 = d3dx9_29.D3DXVec2TransformCoord -_D3DXVec3CatmullRom@24 = d3dx9_29.D3DXVec3CatmullRom -_D3DXVec3TransformCoord@12 = d3dx9_29.D3DXVec3TransformCoord -_D3DXCreateEffect@36 = d3dx9_29.D3DXCreateEffect -_D3DXCreateEffectFromFileA@32 = d3dx9_29.D3DXCreateEffectFromFileA -_D3DXCreateEffectPool@4 = d3dx9_29.D3DXCreateEffectPool -_D3DXGetShaderInputSemantics@12 = d3dx9_29.D3DXGetShaderInputSemantics -_D3DXGetShaderVersion@4 = d3dx9_29.D3DXGetShaderVersion -_D3DXMatrixTranspose@8 = d3dx9_29.D3DXMatrixTranspose DELETED src/win32/directx/dinput8.d Index: src/win32/directx/dinput8.d ================================================================== --- src/win32/directx/dinput8.d +++ src/win32/directx/dinput8.d @@ -1,431 +0,0 @@ -module win32.directx.dinput8; - -//import tango.sys.win32.Types; -//alias char CHAR; - -import win32.windows; - -enum { - CLASS_E_NOAGGREGATION = cast(int) 0x80040110, -} - -interface IUnknown { - HRESULT QueryInterface(IID* riid, void** pvObject); - ULONG AddRef(); - ULONG Release(); -} - -extern(C): - -struct DIDEVICEINSTANCEA -{ - DWORD dwSize; - GUID guidInstance; - GUID guidProduct; - DWORD dwDevType; - CHAR[MAX_PATH] tszInstanceName; - CHAR[MAX_PATH] tszProductName; - GUID guidFFDriver; - WORD wUsagePage; - WORD wUsage; -} -alias DIDEVICEINSTANCEA DIDEVICEINSTANCE; - -struct DIDEVICEOBJECTINSTANCEA -{ - DWORD dwSize; - GUID guidType; - DWORD dwOfs; - DWORD dwType; - DWORD dwFlags; - CHAR[MAX_PATH] tszName; - DWORD dwFFMaxForce; - DWORD dwFFForceResolution; - WORD wCollectionNumber; - WORD wDesignatorIndex; - WORD wUsagePage; - WORD wUsage; - DWORD dwDimension; - WORD wExponent; - WORD wReportId; -} - -struct DIOBJECTDATAFORMAT -{ - const GUID *pguid; - DWORD dwOfs; - DWORD dwType; - DWORD dwFlags; -} - -struct DIDATAFORMAT -{ - DWORD dwSize; - DWORD dwObjSize; - DWORD dwFlags; - DWORD dwDataSize; - DWORD dwNumObjs; - DIOBJECTDATAFORMAT* rgodf; -} - -extern DIDATAFORMAT c_dfDIKeyboard; -extern DIDATAFORMAT c_dfDIMouse2; -extern DIDATAFORMAT c_dfDIJoystick; - -struct DIACTIONA -{ - UINT* uAppData; - DWORD dwSemantic; - DWORD dwFlags; - union - { - LPCSTR lptszActionName; - UINT uResIdString; - } - GUID guidInstance; - DWORD dwObjID; - DWORD dwHow; -} - -struct DIACTIONFORMATA -{ - DWORD dwSize; - DWORD dwActionSize; - DWORD dwDataSize; - DWORD dwNumActions; - DIACTIONA* rgoAction; - GUID guidActionMap; - DWORD dwGenre; - DWORD dwBufferSize; - LONG lAxisMin; - LONG lAxisMax; - HINSTANCE hInstString; - FILETIME ftTimeStamp; - DWORD dwCRC; - CHAR[MAX_PATH] tszActionMap; -} - -struct DIDEVCAPS -{ - DWORD dwSize; - DWORD dwFlags; - DWORD dwDevType; - DWORD dwAxes; - DWORD dwButtons; - DWORD dwPOVs; - DWORD dwFFSamplePeriod; - DWORD dwFFMinTimeResolution; - DWORD dwFirmwareRevision; - DWORD dwHardwareRevision; - DWORD dwFFDriverVersion; -} - -struct DIPROPHEADER -{ - DWORD dwSize; - DWORD dwHeaderSize; - DWORD dwObj; - DWORD dwHow; -} - -struct DIDEVICEOBJECTDATA -{ - DWORD dwOfs; - DWORD dwData; - DWORD dwTimeStamp; - DWORD dwSequence; - UINT* uAppData; -} - -struct DIENVELOPE -{ - DWORD dwSize = DIENVELOPE.sizeof; - DWORD dwAttackLevel; - DWORD dwAttackTime; // Microseconds - DWORD dwFadeLevel; - DWORD dwFadeTime; // Microseconds -} - -struct DIEFFECT -{ - DWORD dwSize = DIEFFECT.sizeof; - DWORD dwFlags; // DIEFF_* - DWORD dwDuration; // Microseconds - DWORD dwSamplePeriod; // Microseconds - DWORD dwGain; - DWORD dwTriggerButton; // or DIEB_NOTRIGGER - DWORD dwTriggerRepeatInterval; // Microseconds - DWORD cAxes; // Number of axes - LPDWORD rgdwAxes; // Array of axes - LPLONG rglDirection; // Array of directions - DIENVELOPE* lpEnvelope; // Optional - DWORD cbTypeSpecificParams; // Size of params - LPVOID lpvTypeSpecificParams; // Pointer to params - DWORD dwStartDelay; // Microseconds -} - -struct DIEFFESCAPE -{ - DWORD dwSize; - DWORD dwCommand; - LPVOID lpvInBuffer; - DWORD cbInBuffer; - LPVOID lpvOutBuffer; - DWORD cbOutBuffer; -} - -struct DIEFFECTINFOA -{ - DWORD dwSize; - GUID guid; - DWORD dwEffType; - DWORD dwStaticParams; - DWORD dwDynamicParams; - CHAR[MAX_PATH] tszName; -} - -struct DIFILEEFFECT -{ - DWORD dwSize; - GUID GuidEffect; - DIEFFECT* lpDiEffect; - CHAR[MAX_PATH] szFriendlyName; -} - -struct DIDEVICEIMAGEINFOA -{ - CHAR[MAX_PATH] tszImagePath; - DWORD dwFlags; - // These are valid if DIDIFT_OVERLAY is present in dwFlags. - DWORD dwViewID; - RECT rcOverlay; - DWORD dwObjID; - DWORD dwcValidPts; - POINT[5] rgptCalloutLine; - RECT rcCalloutRect; - DWORD dwTextAlign; -} - -struct DIDEVICEIMAGEINFOHEADERA -{ - DWORD dwSize; - DWORD dwSizeImageInfo; - DWORD dwcViews; - DWORD dwcButtons; - DWORD dwcAxes; - DWORD dwcPOVs; - DWORD dwBufferSize; - DWORD dwBufferUsed; - DIDEVICEIMAGEINFOA* lprgImageInfoArray; -} - -struct DICONFIGUREDEVICESPARAMSA -{ - DWORD dwSize; - DWORD dwcUsers; - LPSTR lptszUserNames; - DWORD dwcFormats; - DIACTIONFORMATA* lprgFormats; - HWND hwnd; - DICOLORSET dics; - IUnknown lpUnkDDSTarget; -} - -struct DICOLORSET -{ - DWORD dwSize; - DWORD cTextFore; - DWORD cTextHighlight; - DWORD cCalloutLine; - DWORD cCalloutHighlight; - DWORD cBorder; - DWORD cControlFill; - DWORD cHighlightFill; - DWORD cAreaFill; -} - -struct DIMOUSESTATE2 -{ - LONG lX; - LONG lY; - LONG lZ; - BYTE[8] rgbButtons; -} - -struct DIJOYSTATE -{ - LONG lX; /* x-axis position */ - LONG lY; /* y-axis position */ - LONG lZ; /* z-axis position */ - LONG lRx; /* x-axis rotation */ - LONG lRy; /* y-axis rotation */ - LONG lRz; /* z-axis rotation */ - LONG[2] rglSlider; /* extra axes positions */ - DWORD[4]rgdwPOV; /* POV directions */ - BYTE[32]rgbButtons; /* 32 buttons */ -} - -struct DIPROPRANGE -{ - DIPROPHEADER diph; - LONG lMin; - LONG lMax; -} - -interface IDirectInputEffect : IUnknown -{ - HRESULT Initialize(HINSTANCE, DWORD, GUID*); - HRESULT GetEffectGuid(GUID*); - HRESULT GetParameters(DIEFFECT*, DWORD); - HRESULT SetParameters(DIEFFECT*, DWORD); - HRESULT Start(DWORD, DWORD); - HRESULT Stop(); - HRESULT GetEffectStatus(LPDWORD); - HRESULT Download(); - HRESULT Unload(); - HRESULT Escape(DIEFFESCAPE*); -} - -extern(Windows) alias bool function(DIDEVICEINSTANCEA*, LPVOID) LPDIENUMDEVICESCALLBACKA; -extern(Windows) alias bool function(DIDEVICEINSTANCEA*, IDirectInputDevice8A*, DWORD, DWORD, LPVOID) LPDIENUMDEVICESBYSEMANTICSCBA; - -extern(Windows) alias bool function(DIDEVICEOBJECTINSTANCEA *didoi, void* pContext) LPDIENUMDEVICEOBJECTSCALLBACKA; - -extern(Windows) alias bool function(DIEFFECTINFOA*, LPVOID) LPDIENUMEFFECTSCALLBACKA; -extern(Windows) alias bool function(IDirectInputEffect, LPVOID) LPDIENUMCREATEDEFFECTOBJECTSCALLBACK; -extern(Windows) alias bool function(DIFILEEFFECT* , LPVOID) LPDIENUMEFFECTSINFILECALLBACK; -extern(Windows) alias bool function(IUnknown, LPVOID) LPDICONFIGUREDEVICESCALLBACK; - -interface IDirectInputDevice8A : IUnknown -{ - HRESULT GetCapabilities(DIDEVCAPS*); - HRESULT EnumObjects(LPDIENUMDEVICEOBJECTSCALLBACKA, VOID*, DWORD); - HRESULT GetProperty(GUID*, DIPROPHEADER*); - HRESULT SetProperty(GUID*, DIPROPHEADER*); - HRESULT Acquire(); - HRESULT Unacquire(); - HRESULT GetDeviceState(DWORD, LPVOID); - HRESULT GetDeviceData(DWORD, DIDEVICEOBJECTDATA*, LPDWORD, DWORD); - HRESULT SetDataFormat(DIDATAFORMAT*); - HRESULT SetEventNotification(HANDLE); - HRESULT SetCooperativeLevel(HWND, DWORD); - HRESULT GetObjectInfo(DIDEVICEOBJECTINSTANCEA*, DWORD, DWORD); - HRESULT GetDeviceInfo(DIDEVICEINSTANCEA*); - HRESULT RunControlPanel(HWND, DWORD); - HRESULT Initialize(HINSTANCE, DWORD, GUID*); - HRESULT CreateEffect(GUID*, DIEFFECT*, IDirectInputEffect*, IUnknown); - HRESULT EnumEffects(LPDIENUMEFFECTSCALLBACKA, LPVOID, DWORD); - HRESULT GetEffectInfo(DIEFFECTINFOA*, GUID*); - HRESULT GetForceFeedbackState(LPDWORD); - HRESULT SendForceFeedbackCommand(DWORD); - HRESULT EnumCreatedEffectObjects(LPDIENUMCREATEDEFFECTOBJECTSCALLBACK, LPVOID, DWORD); - HRESULT Escape(DIEFFESCAPE*); - HRESULT Poll(); - HRESULT SendDeviceData(DWORD, DIDEVICEOBJECTDATA*, LPDWORD, DWORD); - HRESULT EnumEffectsInFile(LPCSTR, LPDIENUMEFFECTSINFILECALLBACK, LPVOID, DWORD); - HRESULT WriteEffectToFile(LPCSTR, DWORD, DIFILEEFFECT*, DWORD); - HRESULT BuildActionMap(DIACTIONFORMATA*, LPCSTR, DWORD); - HRESULT SetActionMap(DIACTIONFORMATA*, LPCSTR, DWORD); - HRESULT GetImageInfo(DIDEVICEIMAGEINFOHEADERA*); -} -alias IDirectInputDevice8A IDirectInputDevice8; - -interface IDirectInput8A : IUnknown -{ -extern(Windows): - HRESULT CreateDevice(GUID*, IDirectInputDevice8A*, IUnknown); - HRESULT EnumDevices(DWORD, LPDIENUMDEVICESCALLBACKA, LPVOID, DWORD); - HRESULT GetDeviceStatus(GUID*); - HRESULT RunControlPanel(HWND, DWORD); - HRESULT Initialize(HINSTANCE, DWORD); - HRESULT FindDevice(GUID*, LPCSTR, GUID*); - HRESULT EnumDevicesBySemantics(LPCSTR, DIACTIONFORMATA*, LPDIENUMDEVICESBYSEMANTICSCBA, LPVOID, DWORD); - HRESULT ConfigureDevices(LPDICONFIGUREDEVICESCALLBACK, DICONFIGUREDEVICESPARAMSA*, DWORD, LPVOID); -} -alias IDirectInput8A IDirectInput8; - -extern(Windows) HRESULT DirectInput8Create(HINSTANCE hinst, DWORD dwVersion, GUID* riidltf, void** ppvOut, IUnknown punkOuter); - -const GUID IID_IDirectInput8A={0xBF798030, 0x483A, 0x4DA2, [0xAA, 0x99, 0x5D, 0x64, 0xED, 0x36, 0x97, 0x00]}; -alias IID_IDirectInput8A IID_IDirectInput8; -const GUID GUID_SysKeyboard = {0x6F1D2B61, 0xD5A0, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; -const GUID GUID_SysMouse = {0x6F1D2B60, 0xD5A0, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; -const GUID GUID_XAxis = {0xA36D02E0, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; -const GUID GUID_YAxis = {0xA36D02E1, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; -const GUID GUID_ZAxis = {0xA36D02E2, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; -const GUID GUID_RxAxis = {0xA36D02F4, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; -const GUID GUID_RyAxis = {0xA36D02F5, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; -const GUID GUID_RzAxis = {0xA36D02E3, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; -const GUID GUID_Slider = {0xA36D02E4, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; -const GUID GUID_Key = {0x55728220, 0xD33C, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; -const GUID GUID_POV = {0xA36D02F2, 0xC9F3, 0x11CF, [0xBF, 0xC7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]}; - -enum : uint -{ - DISCL_EXCLUSIVE= 0x00000001, - DISCL_NONEXCLUSIVE= 0x00000002, - DISCL_FOREGROUND= 0x00000004, - DISCL_BACKGROUND= 0x00000008, - DISCL_NOWINKEY= 0x00000010, - - DIPH_DEVICE=0, - DIPH_BYOFFSET=1, - - DI8DEVCLASS_GAMECTRL=4, - DIEDFL_ATTACHEDONLY= 0x00000001, - DIDFT_AXIS= 0x00000003 -} - -enum -{ - SEVERITY_SUCCESS= 0, - SEVERITY_ERROR= 1, - FACILITY_WIN32= 7, - ERROR_READ_FAULT= 30L, - DIENUM_CONTINUE= 1, - DIPH_BYID= 2 -} - -struct DIPROPDWORD -{ - DIPROPHEADER diph; - DWORD dwData; -} - -template MAKE_HRESULT(uint sev, uint fac, uint code) -{ - const HRESULT MAKE_HRESULT = cast(HRESULT)((sev << 31) | (fac << 16) | code); -} - -const HRESULT DIERR_OLDDIRECTINPUTVERSION = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, 1150); -const HRESULT DIERR_BETADIRECTINPUTVERSION = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, 1153); -const HRESULT DIERR_BADDRIVERVER = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, 119); -const HRESULT DIERR_DEVICENOTREG = 0x80040154; -const HRESULT DIERR_NOTFOUND = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, ERROR_FILE_NOT_FOUND); -const HRESULT DIERR_OBJECTNOTFOUND = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, ERROR_FILE_NOT_FOUND); -const HRESULT DIERR_INVALIDPARAM = E_INVALIDARG; -const HRESULT DIERR_NOINTERFACE = E_NOINTERFACE; -const HRESULT DIERR_GENERIC = E_FAIL; -const HRESULT DIERR_OUTOFMEMORY = E_OUTOFMEMORY; -const HRESULT DIERR_UNSUPPORTED = E_NOTIMPL; -const HRESULT DIERR_NOTINITIALIZED = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, 21); -const HRESULT DIERR_ALREADYINITIALIZED = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, 1247); -const HRESULT DIERR_NOAGGREGATION = CLASS_E_NOAGGREGATION; -const HRESULT DIERR_OTHERAPPHASPRIO = 0x80070005; -const HRESULT DIERR_INPUTLOST = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, ERROR_READ_FAULT); -const HRESULT DIERR_ACQUIRED = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, 170); -const HRESULT DIERR_NOTACQUIRED = MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_WIN32, 12); -const HRESULT DIERR_READONLY = 0x80070005; -const HRESULT DIERR_HANDLEEXISTS = 0x80070005; -const HRESULT DIERR_INSUFFICIENTPRIVS = 0x80040200; -const HRESULT DIERR_DEVICEFULL = 0x80040201; -const HRESULT DIERR_MOREDATA = 0x80040202; -const HRESULT DIERR_NOTDOWNLOADED = 0x80040203; -const HRESULT DIERR_HASEFFECTS = 0x80040204; -const HRESULT DIERR_NOTEXCLUSIVEACQUIRED = 0x80040205; -const HRESULT DIERR_INCOMPLETEEFFECT = 0x80040206; -const HRESULT DIERR_NOTBUFFERED = 0x80040207; -const HRESULT DIERR_EFFECTPLAYING = 0x80040208; -const HRESULT DIERR_UNPLUGGED = 0x80040209; -const HRESULT DIERR_REPORTFULL = 0x8004020A; -const HRESULT DIERR_MAPFILEFAIL = 0x8004020B; DELETED src/win32/directx/dinput8.def Index: src/win32/directx/dinput8.def ================================================================== --- src/win32/directx/dinput8.def +++ src/win32/directx/dinput8.def @@ -1,2 +0,0 @@ -IMPORTS -_DirectInput8Create@20 = dinput8.DirectInput8Create DELETED src/win32/directx/dsound8.d Index: src/win32/directx/dsound8.d ================================================================== --- src/win32/directx/dsound8.d +++ src/win32/directx/dsound8.d @@ -1,228 +0,0 @@ -module win32.directx.dsound8; - -//import tango.sys.win32.Types; -import win32.windows; - -alias GUID* LPCGUID; - -interface IUnknown -{ - HRESULT QueryInterface(IID* riid, void** pvObject); - ULONG AddRef(); - ULONG Release(); -} - -alias IUnknown LPUNKNOWN; - -interface IDirectSound : IUnknown -{ - extern(Windows): - - // IDirectSound methods - HRESULT CreateSoundBuffer (LPCDSBUFFERDESC pcDSBufferDesc, LPDIRECTSOUNDBUFFER *ppDSBuffer, LPUNKNOWN pUnkOuter); - HRESULT GetCaps (LPDSCAPS pDSCaps); - HRESULT DuplicateSoundBuffer (LPDIRECTSOUNDBUFFER pDSBufferOriginal, LPDIRECTSOUNDBUFFER *ppDSBufferDuplicate); - HRESULT SetCooperativeLevel (HWND hwnd, DWORD dwLevel); - HRESULT Compact (); - HRESULT GetSpeakerConfig (LPDWORD pdwSpeakerConfig); - HRESULT SetSpeakerConfig (DWORD dwSpeakerConfig); - HRESULT Initialize (LPCGUID pcGuidDevice); -} - -alias IDirectSound LPDIRECTSOUND; - -interface IDirectSound8 : IDirectSound -{ - extern(Windows): - - // IDirectSound8 methods - HRESULT VerifyCertification (LPDWORD pdwCertified); -} - -alias IDirectSound8 LPDIRECTSOUND8; - -interface IDirectSoundBuffer : IUnknown -{ - extern(Windows): - - // IDirectSoundBuffer methods - HRESULT GetCaps (LPDSBCAPS pDSBufferCaps); - HRESULT GetCurrentPosition (LPDWORD pdwCurrentPlayCursor, LPDWORD pdwCurrentWriteCursor); - HRESULT GetFormat (LPWAVEFORMATEX pwfxFormat, DWORD dwSizeAllocated, LPDWORD pdwSizeWritten); - HRESULT GetVolume (LPLONG plVolume); - HRESULT GetPan (LPLONG plPan); - HRESULT GetFrequency (LPDWORD pdwFrequency); - HRESULT GetStatus (LPDWORD pdwStatus); - HRESULT Initialize (LPDIRECTSOUND pDirectSound, LPCDSBUFFERDESC pcDSBufferDesc); - HRESULT Lock (DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1, - LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags); - HRESULT Play (DWORD dwReserved1, DWORD dwPriority, DWORD dwFlags); - HRESULT SetCurrentPosition (DWORD dwNewPosition); - HRESULT SetFormat (LPCWAVEFORMATEX pcfxFormat); - HRESULT SetVolume (LONG lVolume); - HRESULT SetPan (LONG lPan); - HRESULT SetFrequency (DWORD dwFrequency); - HRESULT Stop (); - HRESULT Unlock (LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioBytes2); - HRESULT Restore (); -} - -alias IDirectSoundBuffer LPDIRECTSOUNDBUFFER; - -interface IDirectSound3DListener : IUnknown -{ - extern(Windows): - - // IDirectSound3DListener methods - HRESULT GetAllParameters (LPDS3DLISTENER pListener); - HRESULT GetDistanceFactor (D3DVALUE* pflDistanceFactor); - HRESULT GetDopplerFactor (D3DVALUE* pflDopplerFactor); - HRESULT GetOrientation (D3DVECTOR* pvOrientFront, D3DVECTOR* pvOrientTop); - HRESULT GetPosition (D3DVECTOR* pvPosition); - HRESULT GetRolloffFactor (D3DVALUE* pflRolloffFactor); - HRESULT GetVelocity (D3DVECTOR* pvVelocity); - HRESULT SetAllParameters (LPCDS3DLISTENER pcListener, DWORD dwApply); - HRESULT SetDistanceFactor (D3DVALUE flDistanceFactor, DWORD dwApply); - HRESULT SetDopplerFactor (D3DVALUE flDopplerFactor, DWORD dwApply); - HRESULT SetOrientation (D3DVALUE xFront, D3DVALUE yFront, D3DVALUE zFront, - D3DVALUE xTop, D3DVALUE yTop, D3DVALUE zTop, DWORD dwApply); - HRESULT SetPosition (D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply); - HRESULT SetRolloffFactor (D3DVALUE flRolloffFactor, DWORD dwApply); - HRESULT SetVelocity (D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply); - HRESULT CommitDeferredSettings (); -} - -struct WAVEFORMATEX -{ - ushort wFormatTag; - ushort nChannels; - uint nSamplesPerSec; - uint nAvgBytesPerSec; - ushort nBlockAlign; - ushort wBitsPerSample; - ushort cbSize; -} - -alias WAVEFORMATEX* LPWAVEFORMATEX, LPCWAVEFORMATEX; - -enum : uint -{ - WAVE_FORMAT_PCM = 1 -} - -struct DSCBUFFERDESC -{ - DWORD dwSize; - DWORD dwFlags; - DWORD dwBufferBytes; - DWORD dwReserved; - LPWAVEFORMATEX lpwfxFormat; - DWORD dwFXCount; - LPDSCEFFECTDESC lpDSCFXDesc; -} - -alias DSCBUFFERDESC* LPDSCBUFFERDESC; - -struct DSBUFFERDESC -{ - DWORD dwSize; - DWORD dwFlags; - DWORD dwBufferBytes; - DWORD dwReserved; - LPWAVEFORMATEX lpwfxFormat; - GUID guid3DAlgorithm; -} - -alias DSBUFFERDESC* LPCDSBUFFERDESC; - -struct DSCAPS -{ - DWORD dwSize; - DWORD dwFlags; - DWORD dwMinSecondarySampleRate; - DWORD dwMaxSecondarySampleRate; - DWORD dwPrimaryBuffers; - DWORD dwMaxHwMixingAllBuffers; - DWORD dwMaxHwMixingStaticBuffers; - DWORD dwMaxHwMixingStreamingBuffers; - DWORD dwFreeHwMixingAllBuffers; - DWORD dwFreeHwMixingStaticBuffers; - DWORD dwFreeHwMixingStreamingBuffers; - DWORD dwMaxHw3DAllBuffers; - DWORD dwMaxHw3DStaticBuffers; - DWORD dwMaxHw3DStreamingBuffers; - DWORD dwFreeHw3DAllBuffers; - DWORD dwFreeHw3DStaticBuffers; - DWORD dwFreeHw3DStreamingBuffers; - DWORD dwTotalHwMemBytes; - DWORD dwFreeHwMemBytes; - DWORD dwMaxContigFreeHwMemBytes; - DWORD dwUnlockTransferRateHwBuffers; - DWORD dwPlayCpuOverheadSwBuffers; - DWORD dwReserved1; - DWORD dwReserved2; -} - -alias DSCAPS* LPDSCAPS; - -struct DSBCAPS -{ - DWORD dwSize; - DWORD dwFlags; - DWORD dwBufferBytes; - DWORD dwUnlockTransferRate; - DWORD dwPlayCpuOverhead; -} - -alias DSBCAPS *LPDSBCAPS; - -struct DSCEFFECTDESC -{ - DWORD dwSize; - DWORD dwFlags; - GUID guidDSCFXClass; - GUID guidDSCFXInstance; - DWORD dwReserved1; - DWORD dwReserved2; -} - -alias DSCEFFECTDESC *LPDSCEFFECTDESC; - -struct DS3DLISTENER -{ - DWORD dwSize; - D3DVECTOR vPosition; - D3DVECTOR vVelocity; - D3DVECTOR vOrientFront; - D3DVECTOR vOrientTop; - D3DVALUE flDistanceFactor; - D3DVALUE flRolloffFactor; - D3DVALUE flDopplerFactor; -} - -alias DS3DLISTENER *LPDS3DLISTENER, LPCDS3DLISTENER; - -alias float D3DVALUE; - -struct D3DVECTOR -{ - float x; - float y; - float z; -} - -extern(Windows) export HRESULT DirectSoundCreate8(LPCGUID pcGuidDevice, LPDIRECTSOUND8 *ppDS8, LPUNKNOWN pUnkOuter); - -const DSSCL_PRIORITY = 0x00000002; -const DSBCAPS_PRIMARYBUFFER = 0x00000001; -const DSBCAPS_CTRL3D = 0x00000010; -const DSBCAPS_GETCURRENTPOSITION2 = 0x00010000; -const DSBCAPS_LOCDEFER = 0x00040000; -const DSBPLAY_LOOPING = 0x00000001; -const DSBSTATUS_PLAYING = 0x00000001; -const DSBCAPS_CTRLFREQUENCY = 0x00000020; -const DSBCAPS_CTRLPAN = 0x00000040; -const DSBCAPS_CTRLVOLUME = 0x00000080; -const DSBLOCK_ENTIREBUFFER = 0x00000002; - -const GUID IID_IDirectSound3DListener8 = {0x279AFA84,0x4981,0x11CE,[0xA5, 0x21, 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60]}; DELETED src/win32/directx/dsound8.def Index: src/win32/directx/dsound8.def ================================================================== --- src/win32/directx/dsound8.def +++ src/win32/directx/dsound8.def @@ -1,2 +0,0 @@ -IMPORTS -_DirectSoundCreate8@12 = dsound.DirectSoundCreate8 DELETED src/win32/directx/dxerr.d Index: src/win32/directx/dxerr.d ================================================================== --- src/win32/directx/dxerr.d +++ src/win32/directx/dxerr.d @@ -1,55 +0,0 @@ -/***********************************************************************\ -* dxerr.d * -* * -* Windows API header module * -* * -* Placed into public domain * -\***********************************************************************/ -module win32.directx.dxerr; - -import win32.windows; - -pragma(lib, "dxerr.lib"); - -extern (Windows) { - CHAR* DXGetErrorStringA(HRESULT hr); - WCHAR* DXGetErrorStringW(HRESULT hr); - CHAR* DXGetErrorDescriptionA(HRESULT hr); - WCHAR* DXGetErrorDescriptionW(HRESULT hr); - HRESULT DXTraceA(CHAR* strFile, DWORD dwLine, HRESULT hr, CHAR* strMsg, - BOOL bPopMsgBox); - HRESULT DXTraceW(CHAR* strFile, DWORD dwLine, HRESULT hr, WCHAR* strMsg, - BOOL bPopMsgBox); -} - -version (Unicode) { - alias DXGetErrorStringW DXGetErrorString; - alias DXGetErrorDescriptionW DXGetErrorDescription; - alias DXTraceW DXTrace; -} else { - alias DXGetErrorStringA DXGetErrorString; - alias DXGetErrorDescriptionA DXGetErrorDescription; - alias DXTraceA DXTrace; -} - -debug (dxerr) { - HRESULT DXTRACE_MSG(TCHAR* str) { - return DXTrace(__FILE__, __LINE__, 0, str, false); - } - HRESULT DXTRACE_ERR(TCHAR* str, HRESULT hr) { - return DXTrace(__FILE__, __LINE__, hr, str, false); - } - HRESULT DXTRACE_ERR_MSGBOX(TCHAR* str, HRESULT hr) { - return DXTrace(__FILE__, __LINE__, hr, str, true); - } -} else { - HRESULT DXTRACE_MSG(TCHAR* str) { - return 0; - } - HRESULT DXTRACE_ERR(TCHAR* str, HRESULT hr) { - return hr; - } - HRESULT DXTRACE_ERR_MSGBOX(TCHAR* str, HRESULT hr) { - return hr; - } -} DELETED src/win32/directx/dxerr8.d Index: src/win32/directx/dxerr8.d ================================================================== --- src/win32/directx/dxerr8.d +++ src/win32/directx/dxerr8.d @@ -1,68 +0,0 @@ -/***********************************************************************\ -* dxerr8.d * -* * -* Windows API header module * -* * -* Translated from MinGW Windows headers * -* * -* Placed into public domain * -\***********************************************************************/ -module win32.directx.dxerr8; - -/* - dxerr8.d - Header file for the DirectX 8 Error API - - Written by Filip Navara - Ported to D by James Pelcis - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -*/ - -private import win32.windef; - -extern (Windows) { - char* DXGetErrorString8A (HRESULT); - WCHAR* DXGetErrorString8W (HRESULT); - char* DXGetErrorDescription8A (HRESULT); - WCHAR* DXGetErrorDescription8W (HRESULT); - HRESULT DXTraceA (char*, DWORD, HRESULT, char*, BOOL); - HRESULT DXTraceW (char*, DWORD, HRESULT, WCHAR*, BOOL); -} - -version (Unicode) { - alias DXGetErrorString8W DXGetErrorString8; - alias DXGetErrorDescription8W DXGetErrorDescription8; - alias DXTraceW DXTrace; -} else { - alias DXGetErrorString8A DXGetErrorString8; - alias DXGetErrorDescription8A DXGetErrorDescription8; - alias DXTraceA DXTrace; -} - -debug (dxerr) { - HRESULT DXTRACE_MSG(TCHAR* str) { - return DXTrace(__FILE__, __LINE__, 0, str, FALSE); - } - - HRESULT DXTRACE_ERR(TCHAR* str, HRESULT hr) { - return DXTrace(__FILE__, __LINE__, hr, str, TRUE); - } - - HRESULT DXTRACE_ERR_NOMSGBOX (WCHAR* str, HRESULT hr) { - return DXTrace(__FILE__, __LINE__, hr, str, FALSE); - } -} else { - HRESULT DXTRACE_MSG(TCHAR* str) { - return 0; - } - - HRESULT DXTRACE_ERR(TCHAR* str, HRESULT hr) { - return hr; - } - - HRESULT DXTRACE_ERR_NOMSGBOX(TCHAR* str, HRESULT hr) { - return hr; - } -} DELETED src/win32/directx/dxerr9.d Index: src/win32/directx/dxerr9.d ================================================================== --- src/win32/directx/dxerr9.d +++ src/win32/directx/dxerr9.d @@ -1,69 +0,0 @@ -/***********************************************************************\ -* dxerr9.d * -* * -* Windows API header module * -* * -* Translated from MinGW Windows headers * -* * -* Placed into public domain * -\***********************************************************************/ -module win32.directx.dxerr9; - -/* - dxerr9.h - Header file for the DirectX 9 Error API - - Written by Filip Navara - Ported to D by James Pelcis - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -*/ - -private import win32.windef; - -extern (Windows) { - char* DXGetErrorString9A(HRESULT); - WCHAR* DXGetErrorString9W(HRESULT); - char* DXGetErrorDescription9A(HRESULT); - WCHAR* DXGetErrorDescription9W(HRESULT); - HRESULT DXTraceA(char*, DWORD, HRESULT, char*, BOOL); - HRESULT DXTraceW(char*, DWORD, HRESULT, WCHAR*, BOOL); -} - -version (Unicode) { - alias DXGetErrorString9W DXGetErrorString9; - alias DXGetErrorDescription9W DXGetErrorDescription9; - alias DXTraceW DXTrace; -} else { - alias DXGetErrorString9A DXGetErrorString9; - alias DXGetErrorDescription9A DXGetErrorDescription9; - alias DXTraceA DXTrace; -} - -debug (dxerr) { - HRESULT DXTRACE_MSG(TCHAR* str) { - return DXTrace(__FILE__, cast(DWORD)__LINE__, 0, str, FALSE); - } - - HRESULT DXTRACE_ERR(TCHAR* str, HRESULT hr) { - return DXTrace(__FILE__, cast(DWORD)__LINE__, hr, str, FALSE); - } - - HRESULT DXTRACE_ERR_NOMSGBOX(TCHAR* str, HRESULT hr) { - return DXTrace(__FILE__, cast(DWORD)__LINE__, hr, str, TRUE); - } -} else { - HRESULT DXTRACE_MSG(TCHAR* str) { - return 0; - } - - HRESULT DXTRACE_ERR(TCHAR* str, HRESULT hr) { - return hr; - } - - HRESULT DXTRACE_ERR_NOMSGBOX(TCHAR* str, HRESULT hr) { - return hr; - } -} DELETED src/win32/directx/dxgi.d Index: src/win32/directx/dxgi.d ================================================================== --- src/win32/directx/dxgi.d +++ src/win32/directx/dxgi.d @@ -1,211 +0,0 @@ -/***********************************************************************\ -* dxgi.d * -* * -* Windows API header module * -* * -* Placed into public domain * -\***********************************************************************/ -module win32.directx.dxgi; - -private import win32.windows; - -private import win32.directx.dxgitype; - -enum { - DXGI_CPU_ACCESS_NONE = 0, - DXGI_CPU_ACCESS_DYNAMIC = 1, - DXGI_CPU_ACCESS_READ_WRITE = 2, - DXGI_CPU_ACCESS_SCRATCH = 3, - DXGI_CPU_ACCESS_FIELD = 15 -} - -enum { - DXGI_USAGE_SHADER_INPUT = 0b00_00010000, - DXGI_USAGE_RENDER_TARGET_OUTPUT = 0b00_00100000, - DXGI_USAGE_BACK_BUFFER = 0b00_01000000, - DXGI_USAGE_SHARED = 0b00_10000000, - DXGI_USAGE_READ_ONLY = 0b01_00000000, - DXGI_USAGE_DISCARD_ON_PRESENT = 0b10_00000000, -} -alias UINT DXGI_USAGE; - -struct DXGI_FRAME_STATISTICS { - UINT PresentCount; - UINT PresentRefreshCount; - UINT SyncRefreshCount; - LARGE_INTEGER SyncQPCTime; - LARGE_INTEGER SyncGPUTime; -} - -struct DXGI_MAPPED_RECT { - INT Pitch; - BYTE* pBits; -} - -struct DXGI_ADAPTER_DESC { - WCHAR[128] Description; - UINT VendorId; - UINT DeviceId; - UINT SubSysId; - UINT Revision; - SIZE_T DedicatedVideoMemory; - SIZE_T DedicatedSystemMemory; - SIZE_T SharedSystemMemory; - LUID AdapterLuid; -} - -struct DXGI_OUTPUT_DESC { - WCHAR[32] DeviceName; - RECT DesktopCoordinates; - BOOL AttachedToDesktop; - DXGI_MODE_ROTATION Rotation; - HMONITOR Monitor; -} - -struct DXGI_SHARED_RESOURCE { - HANDLE Handle; -} - -enum { - DXGI_RESOURCE_PRIORITY_MINIMUM = 0x28000000, - DXGI_RESOURCE_PRIORITY_LOW = 0x50000000, - DXGI_RESOURCE_PRIORITY_NORMAL = 0x78000000, - DXGI_RESOURCE_PRIORITY_HIGH = 0xa0000000, - DXGI_RESOURCE_PRIORITY_MAXIMUM = 0xc8000000 -} - -enum DXGI_RESIDENCY { - DXGI_RESIDENCY_FULLY_RESIDENT = 1, - DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY = 2, - DXGI_RESIDENCY_EVICTED_TO_DISK = 3 -} - -struct DXGI_SURFACE_DESC { - UINT Width; - UINT Height; - DXGI_FORMAT Format; - DXGI_SAMPLE_DESC SampleDesc; -} - -enum DXGI_SWAP_EFFECT { - DXGI_SWAP_EFFECT_DISCARD = 0, - DXGI_SWAP_EFFECT_SEQUENTIAL = 1 -} - -enum DXGI_SWAP_CHAIN_FLAG { - DXGI_SWAP_CHAIN_FLAG_NONPREROTATED = 1, - DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH = 2 -} - -struct DXGI_SWAP_CHAIN_DESC { - DXGI_MODE_DESC BufferDesc; - DXGI_SAMPLE_DESC SampleDesc; - DXGI_USAGE BufferUsage; - UINT BufferCount; - HWND OutputWindow; - BOOL Windowed; - DXGI_SWAP_EFFECT SwapEffect; - UINT Flags; -} - -interface IDXGIObject : IUnknown { - extern(Windows) : - HRESULT SetPrivateData(REFGUID Name, UINT DataSize, void* pData); - HRESULT SetPrivateDataInterface(REFGUID Name, IUnknown pUnknown); - HRESULT GetPrivateData(REFGUID Name, UINT* pDataSize, void* pData); - HRESULT GetParent(REFIID riid, void** ppParent); -} - -interface IDXGIDeviceSubObject : IDXGIObject { - extern(Windows) : - HRESULT GetDevice(REFIID riid, void** ppDevice); -} - -interface IDXGIResource : IDXGIDeviceSubObject { - extern(Windows) : - HRESULT GetSharedHandle(HANDLE* pSharedHandle); - HRESULT GetUsage(DXGI_USAGE* pUsage); - HRESULT SetEvictionPriority(UINT EvictionPriority); - HRESULT GetEvictionPriority(UINT* pEvictionPriority); -} - -interface IDXGISurface : IDXGIDeviceSubObject { - extern(Windows) : - HRESULT GetDesc(DXGI_SURFACE_DESC* pDesc); - HRESULT Map(DXGI_MAPPED_RECT* pLockedRect, UINT MapFlags); - HRESULT Unmap(); -} - -interface IDXGIAdapter : IDXGIObject { - extern(Windows) : - HRESULT EnumOutputs(UINT Output, IDXGIOutput* ppOutput); - HRESULT GetDesc(DXGI_ADAPTER_DESC* pDesc); - HRESULT CheckInterfaceSupport(REFGUID InterfaceName, LARGE_INTEGER* pUMDVersion); -} - -interface IDXGIOutput : IDXGIObject { - extern(Windows) : - HRESULT GetDesc(DXGI_OUTPUT_DESC* pDesc); - HRESULT GetDisplayModeList(DXGI_FORMAT EnumFormat, UINT Flags, UINT* pNumModes, DXGI_MODE_DESC* pDesc); - HRESULT FindClosestMatchingMode(DXGI_MODE_DESC* pModeToMatch, DXGI_MODE_DESC* pClosestMatch, IUnknown pConcernedDevice); - HRESULT WaitForVBlank(); - HRESULT TakeOwnership(IUnknown pDevice, BOOL Exclusive); - void ReleaseOwnership(); - HRESULT GetGammaControlCapabilities(DXGI_GAMMA_CONTROL_CAPABILITIES* pGammaCaps); - HRESULT SetGammaControl(DXGI_GAMMA_CONTROL* pArray); - HRESULT GetGammaControl(DXGI_GAMMA_CONTROL* pArray); - HRESULT SetDisplaySurface(IDXGISurface pScanoutSurface); - HRESULT GetDisplaySurfaceData(IDXGISurface pDestination); - HRESULT GetFrameStatistics(DXGI_FRAME_STATISTICS* pStats); -} - -const DXGI_MAX_SWAP_CHAIN_BUFFERS = 16; - -enum { - DXGI_PRESENT_TEST = 0x00000001, - DXGI_PRESENT_DO_NOT_SEQUENCE = 0x00000002, - DXGI_PRESENT_RESTART = 0x00000004 -} - -interface IDXGISwapChain : IDXGIDeviceSubObject { - extern(Windows) : - HRESULT Present(UINT SyncInterval, UINT Flags); - HRESULT GetBuffer(UINT Buffer, REFIID riid, void** ppSurface); - HRESULT SetFullscreenState(BOOL Fullscreen, IDXGIOutput pTarget); - HRESULT GetFullscreenState(BOOL* pFullscreen, IDXGIOutput* ppTarget); - HRESULT GetDesc(DXGI_SWAP_CHAIN_DESC* pDesc); - HRESULT ResizeBuffers(UINT BufferCount, UINT Width, UINT Height, DXGI_FORMAT NewFormat, UINT SwapChainFlags); - HRESULT ResizeTarget(DXGI_MODE_DESC* pNewTargetParameters); - HRESULT GetContainingOutput(IDXGIOutput* ppOutput); - HRESULT GetFrameStatistics(DXGI_FRAME_STATISTICS* pStats); - HRESULT GetLastPresentCount(UINT* pLastPresentCount); -} - -interface IDXGIFactory : IDXGIObject { - extern(Windows) : - HRESULT EnumAdapters(UINT Adapter, IDXGIAdapter* ppAdapter); - HRESULT MakeWindowAssociation(HWND WindowHandle, UINT Flags); - HRESULT GetWindowAssociation(HWND* pWindowHandle); - HRESULT CreateSwapChain(IUnknown pDevice, DXGI_SWAP_CHAIN_DESC* pDesc, IDXGISwapChain* ppSwapChain); - HRESULT CreateSoftwareAdapter(HMODULE Module, IDXGIAdapter* ppAdapter); -} - -interface IDXGIDevice : IDXGIObject { - extern(Windows) : - HRESULT GetAdapter(IDXGIAdapter* pAdapter); - HRESULT CreateSurface(DXGI_SURFACE_DESC* pDesc, UINT NumSurfaces, DXGI_USAGE Usage, DXGI_SHARED_RESOURCE* pSharedResource, IDXGISurface* ppSurface); - HRESULT QueryResourceResidency(IUnknown* ppResources, DXGI_RESIDENCY* pResidencyStatus, UINT NumResources); - HRESULT SetGPUThreadPriority(INT Priority); - HRESULT GetGPUThreadPriority(INT* pPriority); -} - -extern(C) const GUID IID_IDXGIObject = {0xaec22fb8, 0x76f3, 0x4639, [0x9b, 0xe0, 0x28, 0xeb, 0x43, 0xa6, 0x7a, 0x2e]}; -extern(C) const GUID IID_IDXGIDeviceSubObject = {0x3d3e0379, 0xf9de, 0x4d58, [0xbb, 0x6c, 0x18, 0xd6, 0x29, 0x92, 0xf1, 0xa6]}; -extern(C) const GUID IID_IDXGIResource = {0x035f3ab4, 0x482e, 0x4e50, [0xb4, 0x1f, 0x8a, 0x7f, 0x8b, 0xd8, 0x96, 0x0b]}; -extern(C) const GUID IID_IDXGISurface = {0xcafcb56c, 0x6ac3, 0x4889, [0xbf, 0x47, 0x9e, 0x23, 0xbb, 0xd2, 0x60, 0xec]}; -extern(C) const GUID IID_IDXGIAdapter = {0x2411e7e1, 0x12ac, 0x4ccf, [0xbd, 0x14, 0x97, 0x98, 0xe8, 0x53, 0x4d, 0xc0]}; -extern(C) const GUID IID_IDXGIOutput = {0xae02eedb, 0xc735, 0x4690, [0x8d, 0x52, 0x5a, 0x8d, 0xc2, 0x02, 0x13, 0xaa]}; -extern(C) const GUID IID_IDXGISwapChain = {0x310d36a0, 0xd2e7, 0x4c0a, [0xaa, 0x04, 0x6a, 0x9d, 0x23, 0xb8, 0x88, 0x6a]}; -extern(C) const GUID IID_IDXGIFactory = {0x7b7166ec, 0x21c7, 0x44ae, [0xb2, 0x1a, 0xc9, 0xae, 0x32, 0x1a, 0xe3, 0x69]}; -extern(C) const GUID IID_IDXGIDevice = {0x54ec77fa, 0x1377, 0x44e6, [0x8c, 0x32, 0x88, 0xfd, 0x5f, 0x44, 0xc8, 0x4c]}; - DELETED src/win32/directx/dxgitype.d Index: src/win32/directx/dxgitype.d ================================================================== --- src/win32/directx/dxgitype.d +++ src/win32/directx/dxgitype.d @@ -1,195 +0,0 @@ -/***********************************************************************\ -* dxgitype.d * -* * -* Windows API header module * -* * -* Placed into public domain * -\***********************************************************************/ -module win32.directx.dxgitype; - -private import win32.windows; - -const _FACDXGI = 0x87a; - -HRESULT MAKE_DXGI_HRESULT(T)(T code) { - return MAKE_HRESULT(1, _FACDXGI, code); -} - -HRESULT MAKE_DXGI_STATUS(T)(T code) { - return MAKE_HRESULT(0, _FACDXGI, code); -} - -const HRESULT DXGI_STATUS_OCCLUDED = MAKE_DXGI_STATUS(1); -const HRESULT DXGI_STATUS_CLIPPED = MAKE_DXGI_STATUS(2); -const HRESULT DXGI_STATUS_NO_REDIRECTION = MAKE_DXGI_STATUS(4); -const HRESULT DXGI_STATUS_NO_DESKTOP_ACCESS = MAKE_DXGI_STATUS(5); -const HRESULT DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE = MAKE_DXGI_STATUS(6); -const HRESULT DXGI_STATUS_MODE_CHANGED = MAKE_DXGI_STATUS(7); -const HRESULT DXGI_STATUS_MODE_CHANGE_IN_PROGRESS = MAKE_DXGI_STATUS(8); -const HRESULT DXGI_ERROR_INVALID_CALL = MAKE_DXGI_HRESULT( 1); -const HRESULT DXGI_ERROR_NOT_FOUND = MAKE_DXGI_HRESULT( 2); -const HRESULT DXGI_ERROR_MORE_DATA = MAKE_DXGI_HRESULT( 3); -const HRESULT DXGI_ERROR_UNSUPPORTED = MAKE_DXGI_HRESULT( 4); -const HRESULT DXGI_ERROR_DEVICE_REMOVED = MAKE_DXGI_HRESULT( 5); -const HRESULT DXGI_ERROR_DEVICE_HUNG = MAKE_DXGI_HRESULT( 6); -const HRESULT DXGI_ERROR_DEVICE_RESET = MAKE_DXGI_HRESULT( 7); -const HRESULT DXGI_ERROR_WAS_STILL_DRAWING = MAKE_DXGI_HRESULT(10); -const HRESULT DXGI_ERROR_FRAME_STATISTICS_DISJOINT = MAKE_DXGI_HRESULT(11); -const HRESULT DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE = MAKE_DXGI_HRESULT(12); -const HRESULT DXGI_ERROR_DRIVER_INTERNAL_ERROR = MAKE_DXGI_HRESULT(32); -const HRESULT DXGI_ERROR_NONEXCLUSIVE = MAKE_DXGI_HRESULT(33); -const HRESULT DXGI_ERROR_NOT_CURRENTLY_AVAILABLE = MAKE_DXGI_HRESULT(34); -const HRESULT DXGI_FORMAT_DEFINED = 1; - -enum DXGI_FORMAT { - DXGI_FORMAT_UNKNOWN = 0, - DXGI_FORMAT_R32G32B32A32_TYPELESS, - DXGI_FORMAT_R32G32B32A32_FLOAT, - DXGI_FORMAT_R32G32B32A32_UINT, - DXGI_FORMAT_R32G32B32A32_SINT, - DXGI_FORMAT_R32G32B32_TYPELESS, - DXGI_FORMAT_R32G32B32_FLOAT, - DXGI_FORMAT_R32G32B32_UINT, - DXGI_FORMAT_R32G32B32_SINT, - DXGI_FORMAT_R16G16B16A16_TYPELESS, - DXGI_FORMAT_R16G16B16A16_FLOAT, - DXGI_FORMAT_R16G16B16A16_UNORM, - DXGI_FORMAT_R16G16B16A16_UINT, - DXGI_FORMAT_R16G16B16A16_SNORM, - DXGI_FORMAT_R16G16B16A16_SINT, - DXGI_FORMAT_R32G32_TYPELESS, - DXGI_FORMAT_R32G32_FLOAT, - DXGI_FORMAT_R32G32_UINT, - DXGI_FORMAT_R32G32_SINT, - DXGI_FORMAT_R32G8X24_TYPELESS, - DXGI_FORMAT_D32_FLOAT_S8X24_UINT, - DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS, - DXGI_FORMAT_X32_TYPELESS_G8X24_UINT, - DXGI_FORMAT_R10G10B10A2_TYPELESS, - DXGI_FORMAT_R10G10B10A2_UNORM, - DXGI_FORMAT_R10G10B10A2_UINT, - DXGI_FORMAT_R11G11B10_FLOAT, - DXGI_FORMAT_R8G8B8A8_TYPELESS, - DXGI_FORMAT_R8G8B8A8_UNORM, - DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, - DXGI_FORMAT_R8G8B8A8_UINT, - DXGI_FORMAT_R8G8B8A8_SNORM, - DXGI_FORMAT_R8G8B8A8_SINT, - DXGI_FORMAT_R16G16_TYPELESS, - DXGI_FORMAT_R16G16_FLOAT, - DXGI_FORMAT_R16G16_UNORM, - DXGI_FORMAT_R16G16_UINT, - DXGI_FORMAT_R16G16_SNORM, - DXGI_FORMAT_R16G16_SINT, - DXGI_FORMAT_R32_TYPELESS, - DXGI_FORMAT_D32_FLOAT, - DXGI_FORMAT_R32_FLOAT, - DXGI_FORMAT_R32_UINT, - DXGI_FORMAT_R32_SINT, - DXGI_FORMAT_R24G8_TYPELESS, - DXGI_FORMAT_D24_UNORM_S8_UINT, - DXGI_FORMAT_R24_UNORM_X8_TYPELESS, - DXGI_FORMAT_X24_TYPELESS_G8_UINT, - DXGI_FORMAT_R8G8_TYPELESS, - DXGI_FORMAT_R8G8_UNORM, - DXGI_FORMAT_R8G8_UINT, - DXGI_FORMAT_R8G8_SNORM, - DXGI_FORMAT_R8G8_SINT, - DXGI_FORMAT_R16_TYPELESS, - DXGI_FORMAT_R16_FLOAT, - DXGI_FORMAT_D16_UNORM, - DXGI_FORMAT_R16_UNORM, - DXGI_FORMAT_R16_UINT, - DXGI_FORMAT_R16_SNORM, - DXGI_FORMAT_R16_SINT, - DXGI_FORMAT_R8_TYPELESS, - DXGI_FORMAT_R8_UNORM, - DXGI_FORMAT_R8_UINT, - DXGI_FORMAT_R8_SNORM, - DXGI_FORMAT_R8_SINT, - DXGI_FORMAT_A8_UNORM, - DXGI_FORMAT_R1_UNORM, - DXGI_FORMAT_R9G9B9E5_SHAREDEXP, - DXGI_FORMAT_R8G8_B8G8_UNORM, - DXGI_FORMAT_G8R8_G8B8_UNORM, - DXGI_FORMAT_BC1_TYPELESS, - DXGI_FORMAT_BC1_UNORM, - DXGI_FORMAT_BC1_UNORM_SRGB, - DXGI_FORMAT_BC2_TYPELESS, - DXGI_FORMAT_BC2_UNORM, - DXGI_FORMAT_BC2_UNORM_SRGB, - DXGI_FORMAT_BC3_TYPELESS, - DXGI_FORMAT_BC3_UNORM, - DXGI_FORMAT_BC3_UNORM_SRGB, - DXGI_FORMAT_BC4_TYPELESS, - DXGI_FORMAT_BC4_UNORM, - DXGI_FORMAT_BC4_SNORM, - DXGI_FORMAT_BC5_TYPELESS, - DXGI_FORMAT_BC5_UNORM, - DXGI_FORMAT_BC5_SNORM, - DXGI_FORMAT_B5G6R5_UNORM, - DXGI_FORMAT_B5G5R5A1_UNORM, - DXGI_FORMAT_B8G8R8A8_UNORM, - DXGI_FORMAT_B8G8R8X8_UNORM, - DXGI_FORMAT_FORCE_UINT = 0xffffffff -} - -struct DXGI_RGB { - float Red; - float Green; - float Blue; -} - -struct DXGI_GAMMA_CONTROL { - DXGI_RGB Scale; - DXGI_RGB Offset; - DXGI_RGB[1025] GammaCurve; -} - -struct DXGI_GAMMA_CONTROL_CAPABILITIES { - BOOL ScaleAndOffsetSupported; - float MaxConvertedValue; - float MinConvertedValue; - UINT NumGammaControlPoints; - float[1025] ControlPointPositions; -} - -struct DXGI_RATIONAL { - UINT Numerator; - UINT Denominator; -} - -enum DXGI_MODE_SCANLINE_ORDER { - DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED = 0, - DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE = 1, - DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST = 2, - DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST = 3 -} - -enum DXGI_MODE_SCALING { - DXGI_MODE_SCALING_UNSPECIFIED = 0, - DXGI_MODE_SCALING_CENTERED = 1, - DXGI_MODE_SCALING_STRETCHED = 2 -} - -enum DXGI_MODE_ROTATION { - DXGI_MODE_ROTATION_UNSPECIFIED = 0, - DXGI_MODE_ROTATION_IDENTITY = 1, - DXGI_MODE_ROTATION_ROTATE90 = 2, - DXGI_MODE_ROTATION_ROTATE180 = 3, - DXGI_MODE_ROTATION_ROTATE270 = 4 -} - -struct DXGI_MODE_DESC { - UINT Width; - UINT Height; - DXGI_RATIONAL RefreshRate; - DXGI_FORMAT Format; - DXGI_MODE_SCANLINE_ORDER ScanlineOrdering; - DXGI_MODE_SCALING Scaling; -} - -struct DXGI_SAMPLE_DESC { - UINT Count; - UINT Quality; -}