Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
wine
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Package registry
Container Registry
Model registry
Operate
Terraform modules
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Alexey Alyaev
wine
Commits
2a90bc2c
Commit
2a90bc2c
authored
18 years ago
by
Stefan Dösinger
Committed by
Alexandre Julliard
18 years ago
Browse files
Options
Downloads
Patches
Plain Diff
wined3d: Remove dead code from drawprim.c.
parent
ca04a9de
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
dlls/wined3d/drawprim.c
+0
-278
0 additions, 278 deletions
dlls/wined3d/drawprim.c
with
0 additions
and
278 deletions
dlls/wined3d/drawprim.c
+
0
−
278
View file @
2a90bc2c
...
...
@@ -403,137 +403,6 @@ void primitiveConvertToStridedData(IWineD3DDevice *iface, WineDirect3DVertexStri
}
}
#if 0 /* TODO: Software Shaders */
/* Draw a single vertex using this information */
static void draw_vertex(IWineD3DDevice *iface, /* interface */
BOOL isXYZ, float x, float y, float z, float rhw, /* xyzn position*/
BOOL isNormal, float nx, float ny, float nz, /* normal */
BOOL isDiffuse, float *dRGBA, /* 1st colors */
BOOL isSpecular, float *sRGB, /* 2ndry colors */
BOOL isPtSize, float ptSize, /* pointSize */
WINED3DVECTOR_4 *texcoords, int *numcoords) /* texture info */
{
unsigned int textureNo;
float s, t, r, q;
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
/* Diffuse -------------------------------- */
if (isDiffuse) {
glColor4fv(dRGBA);
VTRACE(("glColor4f: r,g,b,a=%f,%f,%f,%f\n", dRGBA[0], dRGBA[1], dRGBA[2], dRGBA[3]));
}
/* Specular Colour ------------------------------------------*/
if (isSpecular) {
if (GL_SUPPORT(EXT_SECONDARY_COLOR)) {
GL_EXTCALL(glSecondaryColor3fvEXT(sRGB));
VTRACE(("glSecondaryColor4f: r,g,b=%f,%f,%f\n", sRGB[0], sRGB[1], sRGB[2]));
} else {
VTRACE(("Specular color extensions not supplied\n"));
}
}
/* Normal -------------------------------- */
if (isNormal) {
VTRACE(("glNormal:nx,ny,nz=%f,%f,%f\n", nx,ny,nz));
glNormal3f(nx, ny, nz);
}
/* Point Size ----------------------------------------------*/
if (isPtSize) {
/* no such functionality in the fixed function GL pipeline */
FIXME("Cannot change ptSize here in openGl\n");
}
/* Texture coords --------------------------- */
for (textureNo = 0; textureNo < GL_LIMITS(textures); ++textureNo) {
if (!GL_SUPPORT(ARB_MULTITEXTURE) && textureNo > 0) {
FIXME("Program using multiple concurrent textures which this opengl implementation doesn't support\n");
continue ;
}
/* Query tex coords */
if (This->stateBlock->textures[textureNo] != NULL) {
int coordIdx = This->stateBlock->textureState[textureNo][WINED3DTSS_TEXCOORDINDEX];
if (coordIdx >= MAX_TEXTURES) {
VTRACE(("tex: %d - Skip tex coords, as being system generated\n", textureNo));
continue;
} else if (numcoords[coordIdx] == 0) {
TRACE("tex: %d - Skipping tex coords, as no data supplied or no coords supplied\n", textureNo);
continue;
} else {
/* Initialize vars */
s = 0.0f;
t = 0.0f;
r = 0.0f;
q = 0.0f;
switch (numcoords[coordIdx]) {
case 4: q = texcoords[coordIdx].w; /* drop through */
case 3: r = texcoords[coordIdx].z; /* drop through */
case 2: t = texcoords[coordIdx].y; /* drop through */
case 1: s = texcoords[coordIdx].x;
}
switch (numcoords[coordIdx]) { /* Supply the provided texture coords */
case WINED3DTTFF_COUNT1:
VTRACE(("tex:%d, s=%f\n", textureNo, s));
if (GL_SUPPORT(ARB_MULTITEXTURE)) {
GLMULTITEXCOORD1F(textureNo, s);
} else {
glTexCoord1f(s);
}
break;
case WINED3DTTFF_COUNT2:
VTRACE(("tex:%d, s=%f, t=%f\n", textureNo, s, t));
if (GL_SUPPORT(ARB_MULTITEXTURE)) {
GLMULTITEXCOORD2F(textureNo, s, t);
} else {
glTexCoord2f(s, t);
}
break;
case WINED3DTTFF_COUNT3:
VTRACE(("tex:%d, s=%f, t=%f, r=%f\n", textureNo, s, t, r));
if (GL_SUPPORT(ARB_MULTITEXTURE)) {
GLMULTITEXCOORD3F(textureNo, s, t, r);
} else {
glTexCoord3f(s, t, r);
}
break;
case WINED3DTTFF_COUNT4:
VTRACE(("tex:%d, s=%f, t=%f, r=%f, q=%f\n", textureNo, s, t, r, q));
if (GL_SUPPORT(ARB_MULTITEXTURE)) {
GLMULTITEXCOORD4F(textureNo, s, t, r, q);
} else {
glTexCoord4f(s, t, r, q);
}
break;
default:
FIXME("Should not get here as numCoords should be 0->4 (%x)!\n", numcoords[coordIdx]);
}
}
}
} /* End of textures */
/* Position -------------------------------- */
if (isXYZ) {
if (1.0f == rhw || rhw < 0.00001f) {
VTRACE(("Vertex: glVertex:x,y,z=%f,%f,%f\n", x,y,z));
glVertex3f(x, y, z);
} else {
/* Cannot optimize by dividing through by rhw as rhw is required
later for perspective in the GL pipeline for vertex shaders */
VTRACE(("Vertex: glVertex:x,y,z=%f,%f,%f / rhw=%f\n", x,y,z,rhw));
glVertex4f(x,y,z,rhw);
}
}
}
#endif /* TODO: Software shaders */
static
void
drawStridedFast
(
IWineD3DDevice
*
iface
,
UINT
numberOfVertices
,
GLenum
glPrimitiveType
,
const
void
*
idxData
,
short
idxSize
,
ULONG
minIndex
,
ULONG
startIdx
,
ULONG
startVertex
)
{
IWineD3DDeviceImpl
*
This
=
(
IWineD3DDeviceImpl
*
)
iface
;
...
...
@@ -542,10 +411,6 @@ static void drawStridedFast(IWineD3DDevice *iface,UINT numberOfVertices, GLenum
TRACE
(
"(%p) : glElements(%x, %d, %d, ...)
\n
"
,
This
,
glPrimitiveType
,
numberOfVertices
,
minIndex
);
idxData
=
idxData
==
(
void
*
)
-
1
?
NULL
:
idxData
;
#if 1
#if 0
glIndexPointer(idxSize == 2 ? GL_UNSIGNED_SHORT : GL_UNSIGNED_INT, idxSize, startIdx);
glEnableClientState(GL_INDEX_ARRAY);
#endif
glDrawElements
(
glPrimitiveType
,
numberOfVertices
,
idxSize
==
2
?
GL_UNSIGNED_SHORT
:
GL_UNSIGNED_INT
,
(
const
char
*
)
idxData
+
(
idxSize
*
startIdx
));
#else
/* using drawRangeElements may be faster */
...
...
@@ -886,149 +751,6 @@ static void drawStridedSlow(IWineD3DDevice *iface, WineDirect3DVertexStridedData
checkGLcall
(
"glEnd and previous calls"
);
}
#if 0 /* TODO: Software/Hardware vertex blending support */
/*
* Draw with emulated vertex shaders
* Note: strided data is uninitialized, as we need to pass the vertex
* shader directly as ordering irs yet
*/
void drawStridedSoftwareVS(IWineD3DDevice *iface, WineDirect3DVertexStridedData *sd,
int PrimitiveType, ULONG NumPrimitives,
const void *idxData, short idxSize, ULONG minIndex, ULONG startIdx) {
unsigned int textureNo = 0;
GLenum glPrimType = GL_POINTS;
int NumVertexes = NumPrimitives;
const short *pIdxBufS = NULL;
const long *pIdxBufL = NULL;
LONG SkipnStrides = 0;
LONG vx_index;
float x = 0.0f, y = 0.0f, z = 0.0f; /* x,y,z coordinates */
float rhw = 0.0f; /* rhw */
float ptSize = 0.0f; /* Point size */
D3DVECTOR_4 texcoords[8]; /* Texture Coords */
int numcoords[8]; /* Number of coords */
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
IDirect3DVertexShaderImpl* vertexShader = NULL;
TRACE("Using slow software vertex shader code\n");
/* Variable Initialization */
if (idxData != NULL) {
if (idxSize == 2) pIdxBufS = (const short *) idxData;
else pIdxBufL = (const long *) idxData;
}
/* Ok, Work out which primitive is requested and how many vertexes that will be */
NumVertexes = primitiveToGl(PrimitiveType, NumPrimitives, &glPrimType);
/* Retrieve the VS information */
vertexShader = (IWineD3DVertexShaderImp *)This->stateBlock->VertexShader;
/* Start drawing in GL */
VTRACE(("glBegin(%x)\n", glPrimType));
glBegin(glPrimType);
/* For each primitive */
for (vx_index = 0; vx_index < NumVertexes; ++vx_index) {
/* For indexed data, we need to go a few more strides in */
if (idxData != NULL) {
/* Indexed so work out the number of strides to skip */
if (idxSize == 2) {
VTRACE(("Idx for vertex %d = %d\n", vx_index, pIdxBufS[startIdx+vx_index]));
SkipnStrides = pIdxBufS[startIdx+vx_index];
} else {
VTRACE(("Idx for vertex %d = %d\n", vx_index, pIdxBufL[startIdx+vx_index]));
SkipnStrides = pIdxBufL[startIdx+vx_index];
}
}
/* Fill the vertex shader input */
IDirect3DDeviceImpl_FillVertexShaderInputSW(This, vertexShader, SkipnStrides);
/* Initialize the output fields to the same defaults as it would normally have */
memset(&vertexShader->output, 0, sizeof(VSHADEROUTPUTDATA8));
vertexShader->output.oD[0].x = 1.0;
vertexShader->output.oD[0].y = 1.0;
vertexShader->output.oD[0].z = 1.0;
vertexShader->output.oD[0].w = 1.0;
/* Now execute the vertex shader */
IDirect3DVertexShaderImpl_ExecuteSW(vertexShader, &vertexShader->input, &vertexShader->output);
/*
TRACE_VECTOR(vertexShader->output.oPos);
TRACE_VECTOR(vertexShader->output.oD[0]);
TRACE_VECTOR(vertexShader->output.oD[1]);
TRACE_VECTOR(vertexShader->output.oT[0]);
TRACE_VECTOR(vertexShader->output.oT[1]);
TRACE_VECTOR(vertexShader->input.V[0]);
TRACE_VECTOR(vertexShader->data->C[0]);
TRACE_VECTOR(vertexShader->data->C[1]);
TRACE_VECTOR(vertexShader->data->C[2]);
TRACE_VECTOR(vertexShader->data->C[3]);
TRACE_VECTOR(vertexShader->data->C[4]);
TRACE_VECTOR(vertexShader->data->C[5]);
TRACE_VECTOR(vertexShader->data->C[6]);
TRACE_VECTOR(vertexShader->data->C[7]);
*/
/* Extract out the output */
/* FIXME: Fog coords? */
x = vertexShader->output.oPos.x;
y = vertexShader->output.oPos.y;
z = vertexShader->output.oPos.z;
rhw = vertexShader->output.oPos.w;
ptSize = vertexShader->output.oPts.x; /* Fixme - Is this right? */
/** Update textures coords using vertexShader->output.oT[0->7] */
memset(texcoords, 0x00, sizeof(texcoords));
memset(numcoords, 0x00, sizeof(numcoords));
for (textureNo = 0; textureNo < GL_LIMITS(textures); ++textureNo) {
if (This->stateBlock->textures[textureNo] != NULL) {
texcoords[textureNo].x = vertexShader->output.oT[textureNo].x;
texcoords[textureNo].y = vertexShader->output.oT[textureNo].y;
texcoords[textureNo].z = vertexShader->output.oT[textureNo].z;
texcoords[textureNo].w = vertexShader->output.oT[textureNo].w;
if (This->stateBlock->texture_state[textureNo][WINED3DTSS_TEXTURETRANSFORMFLAGS] != WINED3DTTFF_DISABLE) {
numcoords[textureNo] = This->stateBlock->texture_state[textureNo][WINED3DTSS_TEXTURETRANSFORMFLAGS] & ~WINED3DTTFF_PROJECTED;
} else {
switch (IDirect3DBaseTexture8Impl_GetType((LPDIRECT3DBASETEXTURE8) This->stateBlock->textures[textureNo])) {
case WINED3DRTYPE_TEXTURE: numcoords[textureNo] = 2; break;
case WINED3DRTYPE_VOLUMETEXTURE: numcoords[textureNo] = 3; break;
default: numcoords[textureNo] = 4;
}
}
} else {
numcoords[textureNo] = 0;
}
}
/* Draw using this information */
draw_vertex(iface,
TRUE, x, y, z, rhw,
TRUE, 0.0f, 0.0f, 1.0f,
TRUE, (float*) &vertexShader->output.oD[0],
TRUE, (float*) &vertexShader->output.oD[1],
FALSE, ptSize, /* FIXME: Change back when supported */
texcoords, numcoords);
/* For non indexed mode, step onto next parts */
if (idxData == NULL) {
++SkipnStrides;
}
} /* for each vertex */
glEnd();
checkGLcall("glEnd and previous calls");
}
#endif
static
void
check_fbo_status
(
IWineD3DDevice
*
iface
)
{
IWineD3DDeviceImpl
*
This
=
(
IWineD3DDeviceImpl
*
)
iface
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment