mirror of
https://github.com/isledecomp/isle-portable.git
synced 2026-01-11 18:41:14 +00:00
Add flat shading to Appearance (#258)
This commit is contained in:
parent
f75bec997b
commit
d32c30492f
@ -333,6 +333,10 @@ void OpenGL15Renderer::SubmitDraw(
|
|||||||
glDisable(GL_TEXTURE_2D);
|
glDisable(GL_TEXTURE_2D);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (appearance.flat) {
|
||||||
|
glShadeModel(GL_FLAT);
|
||||||
|
}
|
||||||
|
|
||||||
float shininess = appearance.shininess;
|
float shininess = appearance.shininess;
|
||||||
glMaterialf(GL_FRONT, GL_SHININESS, shininess);
|
glMaterialf(GL_FRONT, GL_SHININESS, shininess);
|
||||||
if (shininess != 0.0f) {
|
if (shininess != 0.0f) {
|
||||||
|
|||||||
@ -288,6 +288,7 @@ void Direct3DRMViewportImpl::CollectMeshesFromFrame(
|
|||||||
|
|
||||||
D3DCOLOR color = mesh->GetGroupColor(gi);
|
D3DCOLOR color = mesh->GetGroupColor(gi);
|
||||||
D3DRMRENDERQUALITY quality = mesh->GetGroupQuality(gi);
|
D3DRMRENDERQUALITY quality = mesh->GetGroupQuality(gi);
|
||||||
|
bool flat = quality == D3DRMRENDER_FLAT || quality == D3DRMRENDER_UNLITFLAT;
|
||||||
|
|
||||||
IDirect3DRMTexture* texture = nullptr;
|
IDirect3DRMTexture* texture = nullptr;
|
||||||
mesh->GetGroupTexture(gi, &texture);
|
mesh->GetGroupTexture(gi, &texture);
|
||||||
@ -307,7 +308,7 @@ void Direct3DRMViewportImpl::CollectMeshesFromFrame(
|
|||||||
|
|
||||||
for (DWORD fi = 0; fi < faceCount; ++fi) {
|
for (DWORD fi = 0; fi < faceCount; ++fi) {
|
||||||
D3DVECTOR norm;
|
D3DVECTOR norm;
|
||||||
if (quality == D3DRMRENDER_FLAT || quality == D3DRMRENDER_UNLITFLAT) {
|
if (flat) {
|
||||||
D3DRMVERTEX& v0 = d3dVerts[faces[fi * vpf + 0]];
|
D3DRMVERTEX& v0 = d3dVerts[faces[fi * vpf + 0]];
|
||||||
D3DRMVERTEX& v1 = d3dVerts[faces[fi * vpf + 1]];
|
D3DRMVERTEX& v1 = d3dVerts[faces[fi * vpf + 1]];
|
||||||
D3DRMVERTEX& v2 = d3dVerts[faces[fi * vpf + 2]];
|
D3DRMVERTEX& v2 = d3dVerts[faces[fi * vpf + 2]];
|
||||||
@ -334,7 +335,8 @@ void Direct3DRMViewportImpl::CollectMeshesFromFrame(
|
|||||||
static_cast<Uint8>((color >> 0) & 0xFF),
|
static_cast<Uint8>((color >> 0) & 0xFF),
|
||||||
static_cast<Uint8>((color >> 24) & 0xFF)},
|
static_cast<Uint8>((color >> 24) & 0xFF)},
|
||||||
shininess,
|
shininess,
|
||||||
textureId}
|
textureId,
|
||||||
|
flat}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
mesh->Release();
|
mesh->Release();
|
||||||
|
|||||||
@ -22,6 +22,7 @@ struct Appearance {
|
|||||||
SDL_Color color;
|
SDL_Color color;
|
||||||
float shininess;
|
float shininess;
|
||||||
Uint32 textureId;
|
Uint32 textureId;
|
||||||
|
bool flat;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct FColor {
|
struct FColor {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user