mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-04-28 15:57:59 +03:00
More decopypasting, rename inline function, remove unneeded arg
This commit is contained in:
parent
569644f1d4
commit
bf6ef08c57
5 changed files with 35 additions and 35 deletions
|
@ -220,11 +220,8 @@ namespace TEN::Renderer
|
|||
}
|
||||
|
||||
// If we are in mirror renderer pass, reflect light.
|
||||
if (_currentMirror != nullptr)
|
||||
{
|
||||
lights[index].Position = Vector3::Transform(lights[index].Position, _currentMirror->ReflectionMatrix);
|
||||
lights[index].Direction = Vector3::Transform(lights[index].Direction, _currentMirror->ReflectionMatrix);
|
||||
}
|
||||
ReflectVectorOptionally(lights[index].Position);
|
||||
ReflectVectorOptionally(lights[index].Direction);
|
||||
|
||||
// Bitmask light type to filter it in the shader later.
|
||||
return (1 << (31 - (int)light.Type));
|
||||
|
|
|
@ -566,7 +566,7 @@ namespace TEN::Renderer
|
|||
const Vector4& color0, const Vector4& color1, const Vector4& color2, const Vector4& color3,
|
||||
BlendMode blendMode, RenderView& view, SpriteRenderType renderType = SpriteRenderType::Default);
|
||||
|
||||
Matrix GetWorldMatrixForSprite(RendererSpriteToDraw* spr, RendererMirror* mirror, RenderView& view);
|
||||
Matrix GetWorldMatrixForSprite(RendererSpriteToDraw* spr, RenderView& view);
|
||||
RendererObject& GetRendererObject(GAME_OBJECT_ID id);
|
||||
RendererMesh* GetMesh(int meshIndex);
|
||||
Texture2D CreateDefaultNormalTexture();
|
||||
|
@ -588,11 +588,19 @@ namespace TEN::Renderer
|
|||
return false;
|
||||
}
|
||||
|
||||
inline bool IgnoreMirrorPassForRoom(int room)
|
||||
inline bool IgnoreReflectionPassForRoom(int room)
|
||||
{
|
||||
return (_currentMirror != nullptr && room != _currentMirror->RealRoom);
|
||||
}
|
||||
|
||||
inline void ReflectVectorOptionally(Vector3& vector)
|
||||
{
|
||||
if (_currentMirror == nullptr)
|
||||
return;
|
||||
|
||||
vector = Vector3::Transform(vector, _currentMirror->ReflectionMatrix);
|
||||
}
|
||||
|
||||
inline void ReflectMatrixOptionally(Matrix& matrix)
|
||||
{
|
||||
if (_currentMirror == nullptr)
|
||||
|
|
|
@ -253,7 +253,7 @@ namespace TEN::Renderer
|
|||
if (gunshell->counter <= 0)
|
||||
continue;
|
||||
|
||||
if (IgnoreMirrorPassForRoom(gunshell->roomNumber))
|
||||
if (IgnoreReflectionPassForRoom(gunshell->roomNumber))
|
||||
continue;
|
||||
|
||||
objectID = gunshell->objectNumber;
|
||||
|
@ -477,7 +477,7 @@ namespace TEN::Renderer
|
|||
{
|
||||
auto* rat = &Rats[i];
|
||||
|
||||
if (IgnoreMirrorPassForRoom(rat->RoomNumber))
|
||||
if (IgnoreReflectionPassForRoom(rat->RoomNumber))
|
||||
continue;
|
||||
|
||||
if (rat->On)
|
||||
|
@ -520,7 +520,7 @@ namespace TEN::Renderer
|
|||
{
|
||||
auto* rat = &Rats[i];
|
||||
|
||||
if (IgnoreMirrorPassForRoom(rat->RoomNumber))
|
||||
if (IgnoreReflectionPassForRoom(rat->RoomNumber))
|
||||
continue;
|
||||
|
||||
if (rat->On)
|
||||
|
@ -733,7 +733,7 @@ namespace TEN::Renderer
|
|||
if (!bat.On)
|
||||
continue;
|
||||
|
||||
if (IgnoreMirrorPassForRoom(bat.RoomNumber))
|
||||
if (IgnoreReflectionPassForRoom(bat.RoomNumber))
|
||||
continue;
|
||||
|
||||
for (auto& bucket : mesh.Buckets)
|
||||
|
@ -769,7 +769,7 @@ namespace TEN::Renderer
|
|||
{
|
||||
const auto& bat = Bats[i];
|
||||
|
||||
if (IgnoreMirrorPassForRoom(bat.RoomNumber))
|
||||
if (IgnoreReflectionPassForRoom(bat.RoomNumber))
|
||||
continue;
|
||||
|
||||
if (bat.On)
|
||||
|
@ -854,7 +854,7 @@ namespace TEN::Renderer
|
|||
if (!beetle.On)
|
||||
continue;
|
||||
|
||||
if (IgnoreMirrorPassForRoom(beetle.RoomNumber))
|
||||
if (IgnoreReflectionPassForRoom(beetle.RoomNumber))
|
||||
continue;
|
||||
|
||||
auto transformMatrix = Matrix::Lerp(beetle.PrevTransform, beetle.Transform, GetInterpolationFactor());
|
||||
|
@ -894,7 +894,7 @@ namespace TEN::Renderer
|
|||
if (!beetle.On)
|
||||
continue;
|
||||
|
||||
if (IgnoreMirrorPassForRoom(beetle.RoomNumber))
|
||||
if (IgnoreReflectionPassForRoom(beetle.RoomNumber))
|
||||
continue;
|
||||
|
||||
auto& room = _rooms[beetle.RoomNumber];
|
||||
|
@ -983,7 +983,7 @@ namespace TEN::Renderer
|
|||
if (!locust.on)
|
||||
continue;
|
||||
|
||||
if (IgnoreMirrorPassForRoom(locust.roomNumber))
|
||||
if (IgnoreReflectionPassForRoom(locust.roomNumber))
|
||||
continue;
|
||||
|
||||
auto& mesh = *GetMesh(Objects[ID_LOCUSTS].meshIndex + (-locust.counter & 3));
|
||||
|
@ -1022,7 +1022,7 @@ namespace TEN::Renderer
|
|||
if (!locust.on)
|
||||
continue;
|
||||
|
||||
if (IgnoreMirrorPassForRoom(locust.roomNumber))
|
||||
if (IgnoreReflectionPassForRoom(locust.roomNumber))
|
||||
continue;
|
||||
|
||||
activeLocustsExist = true;
|
||||
|
@ -2314,7 +2314,7 @@ namespace TEN::Renderer
|
|||
|
||||
for (auto room : view.RoomsToDraw)
|
||||
{
|
||||
if (IgnoreMirrorPassForRoom(room->RoomNumber))
|
||||
if (IgnoreReflectionPassForRoom(room->RoomNumber))
|
||||
continue;
|
||||
|
||||
for (auto itemToDraw : room->ItemsToDraw)
|
||||
|
@ -2565,7 +2565,7 @@ namespace TEN::Renderer
|
|||
RendererStatic* current = statics[s];
|
||||
RendererRoom* room = &_rooms[current->RoomNumber];
|
||||
|
||||
if (IgnoreMirrorPassForRoom(current->RoomNumber))
|
||||
if (IgnoreReflectionPassForRoom(current->RoomNumber))
|
||||
continue;
|
||||
|
||||
Matrix world = current->World;
|
||||
|
@ -2968,7 +2968,7 @@ namespace TEN::Renderer
|
|||
rDrawSprite.Width = STAR_SIZE * star.Scale;
|
||||
rDrawSprite.Height = STAR_SIZE * star.Scale;
|
||||
|
||||
_stInstancedSpriteBuffer.Sprites[i].World = GetWorldMatrixForSprite(&rDrawSprite, nullptr, renderView);
|
||||
_stInstancedSpriteBuffer.Sprites[i].World = GetWorldMatrixForSprite(&rDrawSprite, renderView);
|
||||
_stInstancedSpriteBuffer.Sprites[i].Color = Vector4(
|
||||
star.Color.x,
|
||||
star.Color.y,
|
||||
|
@ -3031,7 +3031,7 @@ namespace TEN::Renderer
|
|||
rDrawSprite.Height = 192;
|
||||
rDrawSprite.ConstrainAxis = meteor.Direction;
|
||||
|
||||
_stInstancedSpriteBuffer.Sprites[i].World = GetWorldMatrixForSprite(&rDrawSprite, nullptr, renderView);
|
||||
_stInstancedSpriteBuffer.Sprites[i].World = GetWorldMatrixForSprite(&rDrawSprite, renderView);
|
||||
_stInstancedSpriteBuffer.Sprites[i].Color = Vector4(
|
||||
meteor.Color.x,
|
||||
meteor.Color.y,
|
||||
|
@ -3137,7 +3137,7 @@ namespace TEN::Renderer
|
|||
rDrawSprite.Height = SUN_SIZE;
|
||||
rDrawSprite.color = renderView.LensFlaresToDraw[0].Color;
|
||||
|
||||
_stInstancedSpriteBuffer.Sprites[0].World = GetWorldMatrixForSprite(&rDrawSprite, nullptr, renderView);
|
||||
_stInstancedSpriteBuffer.Sprites[0].World = GetWorldMatrixForSprite(&rDrawSprite, renderView);
|
||||
_stInstancedSpriteBuffer.Sprites[0].Color = renderView.LensFlaresToDraw[0].Color;
|
||||
_stInstancedSpriteBuffer.Sprites[0].IsBillboard = 1;
|
||||
_stInstancedSpriteBuffer.Sprites[0].IsSoftParticle = 0;
|
||||
|
@ -3348,9 +3348,7 @@ namespace TEN::Renderer
|
|||
_sortedPolygonsIndices.clear();
|
||||
|
||||
if (_currentMirror != nullptr && object->ObjectType == RendererObjectType::Room)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (object->ObjectType == RendererObjectType::Room)
|
||||
{
|
||||
|
@ -3502,7 +3500,7 @@ namespace TEN::Renderer
|
|||
uv2 = spr->Sprite->UV[2];
|
||||
uv3 = spr->Sprite->UV[3];
|
||||
|
||||
Matrix world = GetWorldMatrixForSprite(currentObject->Sprite, _currentMirror, view);
|
||||
Matrix world = GetWorldMatrixForSprite(currentObject->Sprite, view);
|
||||
|
||||
Vertex v0;
|
||||
v0.Position = Vector3::Transform(p0t, world);
|
||||
|
|
|
@ -1155,7 +1155,7 @@ namespace TEN::Renderer
|
|||
|
||||
for (auto* rRoomPtr : view.RoomsToDraw)
|
||||
{
|
||||
if (IgnoreMirrorPassForRoom(rRoomPtr->RoomNumber))
|
||||
if (IgnoreReflectionPassForRoom(rRoomPtr->RoomNumber))
|
||||
continue;
|
||||
|
||||
for (auto* rItemPtr : rRoomPtr->ItemsToDraw)
|
||||
|
@ -1282,16 +1282,13 @@ namespace TEN::Renderer
|
|||
}
|
||||
}
|
||||
|
||||
Matrix Renderer::GetWorldMatrixForSprite(RendererSpriteToDraw* sprite, RendererMirror* mirror, RenderView& view)
|
||||
Matrix Renderer::GetWorldMatrixForSprite(RendererSpriteToDraw* sprite, RenderView& view)
|
||||
{
|
||||
auto spriteMatrix = Matrix::Identity;
|
||||
auto scaleMatrix = Matrix::CreateScale(sprite->Width * sprite->Scale, sprite->Height * sprite->Scale, sprite->Scale);
|
||||
|
||||
Vector3 spritePosition = sprite->pos;
|
||||
if (mirror != nullptr)
|
||||
{
|
||||
spritePosition = Vector3::Transform(spritePosition, mirror->ReflectionMatrix); // Vector3::Reflect(spritePosition, mirror->Plane.Normal());
|
||||
}
|
||||
ReflectVectorOptionally(spritePosition);
|
||||
|
||||
switch (sprite->Type)
|
||||
{
|
||||
|
@ -1381,7 +1378,7 @@ namespace TEN::Renderer
|
|||
|
||||
for (auto* roomPtr : view.RoomsToDraw)
|
||||
{
|
||||
if (IgnoreMirrorPassForRoom(roomPtr->RoomNumber))
|
||||
if (IgnoreReflectionPassForRoom(roomPtr->RoomNumber))
|
||||
continue;
|
||||
|
||||
for (auto* effectPtr : roomPtr->EffectsToDraw)
|
||||
|
@ -1402,7 +1399,7 @@ namespace TEN::Renderer
|
|||
{
|
||||
if (deb.active)
|
||||
{
|
||||
if (IgnoreMirrorPassForRoom(deb.roomNumber))
|
||||
if (IgnoreReflectionPassForRoom(deb.roomNumber))
|
||||
continue;
|
||||
|
||||
activeDebrisExist = true;
|
||||
|
@ -1423,7 +1420,7 @@ namespace TEN::Renderer
|
|||
{
|
||||
if (deb.active)
|
||||
{
|
||||
if (IgnoreMirrorPassForRoom(deb.roomNumber))
|
||||
if (IgnoreReflectionPassForRoom(deb.roomNumber))
|
||||
continue;
|
||||
|
||||
if (!SetupBlendModeAndAlphaTest(deb.mesh.blendMode, rendererPass, 0))
|
||||
|
|
|
@ -296,7 +296,7 @@ namespace TEN::Renderer
|
|||
{
|
||||
auto& rDrawSprite = spriteBucket.SpritesToDraw[i];
|
||||
|
||||
_stInstancedSpriteBuffer.Sprites[i].World = GetWorldMatrixForSprite(&rDrawSprite, _currentMirror, view);
|
||||
_stInstancedSpriteBuffer.Sprites[i].World = GetWorldMatrixForSprite(&rDrawSprite, view);
|
||||
_stInstancedSpriteBuffer.Sprites[i].Color = rDrawSprite.color;
|
||||
_stInstancedSpriteBuffer.Sprites[i].IsBillboard = 1;
|
||||
_stInstancedSpriteBuffer.Sprites[i].IsSoftParticle = rDrawSprite.SoftParticle ? 1 : 0;
|
||||
|
@ -414,7 +414,7 @@ namespace TEN::Renderer
|
|||
UINT offset = 0;
|
||||
_context->IASetVertexBuffers(0, 1, _quadVertexBuffer.Buffer.GetAddressOf(), &stride, &offset);
|
||||
|
||||
_stInstancedSpriteBuffer.Sprites[0].World = GetWorldMatrixForSprite(object->Sprite, nullptr, view);
|
||||
_stInstancedSpriteBuffer.Sprites[0].World = GetWorldMatrixForSprite(object->Sprite, view);
|
||||
_stInstancedSpriteBuffer.Sprites[0].Color = object->Sprite->color;
|
||||
_stInstancedSpriteBuffer.Sprites[0].IsBillboard = 1;
|
||||
_stInstancedSpriteBuffer.Sprites[0].IsSoftParticle = object->Sprite->SoftParticle ? 1 : 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue