diff options
author | Ryan Holtz <rholtz@batcountryentertainment.com> | 2011-06-02 06:22:09 +0000 |
---|---|---|
committer | Ryan Holtz <rholtz@batcountryentertainment.com> | 2011-06-02 06:22:09 +0000 |
commit | 844296b795882294f8242ff8eafe2e3bb49b2c10 (patch) | |
tree | ea78bc40c1d95bfbd58448f3490684f252d9da66 /src/osd/windows/d3dcomm.h | |
parent | 6a52f841ebc446cbed863bc96f14ccb5a89b4627 (diff) |
Split HLSL code into a separate file, d3dhlsl.c/.h. Also split drawd3d.c into a couple of headers. [Ryan Holtz, Bat Country Entertainment]
Diffstat (limited to 'src/osd/windows/d3dcomm.h')
-rw-r--r-- | src/osd/windows/d3dcomm.h | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/src/osd/windows/d3dcomm.h b/src/osd/windows/d3dcomm.h new file mode 100644 index 00000000000..f000c56866c --- /dev/null +++ b/src/osd/windows/d3dcomm.h @@ -0,0 +1,113 @@ +//============================================================ +// +// d3dcomm.h - Common Win32 Direct3D structures +// +//============================================================ +// +// Copyright Aaron Giles +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or +// without modification, are permitted provided that the +// following conditions are met: +// +// * Redistributions of source code must retain the above +// copyright notice, this list of conditions and the +// following disclaimer. +// * Redistributions in binary form must reproduce the +// above copyright notice, this list of conditions and +// the following disclaimer in the documentation and/or +// other materials provided with the distribution. +// * Neither the name 'MAME' nor the names of its +// contributors may be used to endorse or promote +// products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGE (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +// IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +//============================================================ + +#ifndef __WIN_D3DCOMM__ +#define __WIN_D3DCOMM__ + +//============================================================ +// CONSTANTS +//============================================================ + + + +//============================================================ +// TYPE DEFINITIONS +//============================================================ + +/* d3d_texture_info holds information about a texture */ +typedef struct _d3d_texture_info d3d_texture_info; +struct _d3d_texture_info +{ + d3d_texture_info * next; // next texture in the list + d3d_texture_info * prev; // prev texture in the list + UINT32 hash; // hash value for the texture + UINT32 flags; // rendering flags + render_texinfo texinfo; // copy of the texture info + float ustart, ustop; // beginning/ending U coordinates + float vstart, vstop; // beginning/ending V coordinates + int rawwidth, rawheight; // raw width/height of the texture + int type; // what type of texture are we? + int xborderpix; // number of border pixels in X + int yborderpix; // number of border pixels in Y + int xprescale; // what is our X prescale factor? + int yprescale; // what is our Y prescale factor? + int cur_frame; // what is our current frame? + d3d_texture * d3dtex; // Direct3D texture pointer + d3d_surface * d3dsurface; // Direct3D offscreen plain surface pointer + d3d_texture * d3dfinaltex; // Direct3D final (post-scaled) texture + int target_index; // Direct3D target index +}; + + +/* d3d_poly_info holds information about a single polygon/d3d primitive */ +typedef struct _d3d_poly_info d3d_poly_info; +struct _d3d_poly_info +{ + D3DPRIMITIVETYPE type; // type of primitive + UINT32 count; // total number of primitives + UINT32 numverts; // total number of vertices + UINT32 flags; // rendering flags + DWORD modmode; // texture modulation mode + d3d_texture_info * texture; // pointer to texture info +}; + + +/* d3d_vertex describes a single vertex */ +typedef struct _d3d_vertex d3d_vertex; +struct _d3d_vertex +{ + float x, y, z; // X,Y,Z coordinates + float rhw; // RHW when no HLSL, padding when HLSL + D3DCOLOR color; // diffuse color + float u0, v0; // texture stage 0 coordinates +}; + + +/* line_aa_step is used for drawing antialiased lines */ +typedef struct _line_aa_step line_aa_step; +struct _line_aa_step +{ + float xoffs, yoffs; // X/Y deltas + float weight; // weight contribution +}; + + +#endif |