mirror of
https://github.com/isledecomp/isle-portable.git
synced 2025-09-24 04:26:55 -04: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);
|
||||
}
|
||||
|
||||
if (appearance.flat) {
|
||||
glShadeModel(GL_FLAT);
|
||||
}
|
||||
|
||||
float shininess = appearance.shininess;
|
||||
glMaterialf(GL_FRONT, GL_SHININESS, shininess);
|
||||
if (shininess != 0.0f) {
|
||||
|
@ -288,6 +288,7 @@ void Direct3DRMViewportImpl::CollectMeshesFromFrame(
|
||||
|
||||
D3DCOLOR color = mesh->GetGroupColor(gi);
|
||||
D3DRMRENDERQUALITY quality = mesh->GetGroupQuality(gi);
|
||||
bool flat = quality == D3DRMRENDER_FLAT || quality == D3DRMRENDER_UNLITFLAT;
|
||||
|
||||
IDirect3DRMTexture* texture = nullptr;
|
||||
mesh->GetGroupTexture(gi, &texture);
|
||||
@ -307,7 +308,7 @@ void Direct3DRMViewportImpl::CollectMeshesFromFrame(
|
||||
|
||||
for (DWORD fi = 0; fi < faceCount; ++fi) {
|
||||
D3DVECTOR norm;
|
||||
if (quality == D3DRMRENDER_FLAT || quality == D3DRMRENDER_UNLITFLAT) {
|
||||
if (flat) {
|
||||
D3DRMVERTEX& v0 = d3dVerts[faces[fi * vpf + 0]];
|
||||
D3DRMVERTEX& v1 = d3dVerts[faces[fi * vpf + 1]];
|
||||
D3DRMVERTEX& v2 = d3dVerts[faces[fi * vpf + 2]];
|
||||
@ -334,7 +335,8 @@ void Direct3DRMViewportImpl::CollectMeshesFromFrame(
|
||||
static_cast<Uint8>((color >> 0) & 0xFF),
|
||||
static_cast<Uint8>((color >> 24) & 0xFF)},
|
||||
shininess,
|
||||
textureId}
|
||||
textureId,
|
||||
flat}
|
||||
);
|
||||
}
|
||||
mesh->Release();
|
||||
|
@ -22,6 +22,7 @@ struct Appearance {
|
||||
SDL_Color color;
|
||||
float shininess;
|
||||
Uint32 textureId;
|
||||
bool flat;
|
||||
};
|
||||
|
||||
struct FColor {
|
||||
|
Loading…
x
Reference in New Issue
Block a user