Skip to content

Commit

Permalink
multiple things:
Browse files Browse the repository at this point in the history
- port-msc: fixed a division by zero error (had the same on NetBSD and
Haiku), guess its compiler related how this is handled
- removed some unnessessary models
- GLRenderer: do not use std::copy to assign colors or such, just just a
assignment
  • Loading branch information
andreasdr committed Jul 11, 2018
1 parent c3cdfe7 commit 27740f6
Show file tree
Hide file tree
Showing 7 changed files with 14 additions and 19 deletions.
2 changes: 1 addition & 1 deletion Makefile.nmake
Original file line number Diff line number Diff line change
Expand Up @@ -663,7 +663,7 @@ PhysicsTest3:
cl $(FLAGS) $(INCLUDES) src/tdme/tests/PhysicsTest3-main.cpp /link $(EXTRA_LIBS)

PhysicsTest4:
cl $(FLAGS) $(INCLUDES) src/tdme/tests/PhysicsTest3-main.cpp /link $(EXTRA_LIBS)
cl $(FLAGS) $(INCLUDES) src/tdme/tests/PhysicsTest4-main.cpp /link $(EXTRA_LIBS)

SkinningTest:
cl $(FLAGS) $(INCLUDES) src/tdme/tests/SkinningTest-main.cpp /link $(EXTRA_LIBS)
Expand Down
Binary file removed resources/tests/models/barrel/barrel.dae.tm
Binary file not shown.
1 change: 0 additions & 1 deletion resources/tests/models/barrel/barrel.dae.tmm

This file was deleted.

4 changes: 3 additions & 1 deletion src/tdme/engine/Light.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#include <tdme/engine/Light.h>

#include <string>

#include <tdme/engine/model/Color4.h>
#include <tdme/engine/subsystems/renderer/GLRenderer.h>
#include <tdme/math/Matrix4x4.h>
Expand Down Expand Up @@ -57,7 +59,7 @@ void Light::update()
renderer->setLightEnabled(id);
renderer->setLightAmbient(id, ambient.getArray());
renderer->setLightDiffuse(id, diffuse.getArray());
renderer->setLightPosition(id, renderer->getCameraMatrix().multiply(position, lightPositionTransformed).scale(1.0f / lightPositionTransformed.getW()).getArray());
renderer->setLightPosition(id, renderer->getCameraMatrix().multiply(position, lightPositionTransformed).scale(Math::abs(lightPositionTransformed.getW()) < Math::EPSILON?1.0f:1.0f / lightPositionTransformed.getW()).getArray());
renderer->getCameraMatrix().multiply(spotDirection4.set(spotDirection, 0.0f), spotDirection4Transformed);
renderer->setLightSpotDirection(id, tmpVector3.set(spotDirection4Transformed.getX(), spotDirection4Transformed.getY(), spotDirection4Transformed.getZ()).getArray());
renderer->setLightSpotExponent(id, spotExponent);
Expand Down
22 changes: 8 additions & 14 deletions src/tdme/engine/subsystems/renderer/GLRenderer.cpp
Original file line number Diff line number Diff line change
@@ -1,16 +1,10 @@
#include <tdme/engine/subsystems/renderer/GLRenderer.h>

#include <algorithm>

#include <tdme/math/Math.h>
#include <tdme/engine/subsystems/renderer/GLRenderer_Light.h>
#include <tdme/engine/subsystems/renderer/GLRenderer_Material.h>
#include <tdme/math/Matrix4x4.h>

using std::copy;
using std::begin;
using std::end;

using tdme::engine::subsystems::renderer::GLRenderer;
using tdme::math::Math;
using tdme::utils::FloatBuffer;
Expand Down Expand Up @@ -93,22 +87,22 @@ void GLRenderer::setLightDisabled(int32_t lightId)

void GLRenderer::setLightAmbient(int32_t lightId, const array<float, 4>& ambient)
{
copy(begin(ambient), end(ambient), begin(lights[lightId].ambient));
lights[lightId].ambient = ambient;
}

void GLRenderer::setLightDiffuse(int32_t lightId, const array<float, 4>& diffuse)
{
copy(begin(diffuse), end(diffuse), begin(lights[lightId].diffuse));
lights[lightId].diffuse = diffuse;
}

void GLRenderer::setLightPosition(int32_t lightId, const array<float, 4>& position)
{
copy(begin(position), end(position), begin(lights[lightId].position));
lights[lightId].position = position;
}

void GLRenderer::setLightSpotDirection(int32_t lightId, const array<float, 3>& spotDirection)
{
copy(begin(spotDirection), end(spotDirection), begin(lights[lightId].spotDirection));
lights[lightId].spotDirection = spotDirection;
}

void GLRenderer::setLightSpotExponent(int32_t lightId, float spotExponent)
Expand Down Expand Up @@ -156,22 +150,22 @@ void GLRenderer::setMaterialDisabled()

void GLRenderer::setMaterialAmbient(const array<float, 4>& ambient)
{
copy(begin(ambient), end(ambient), begin(material.ambient));
material.ambient = ambient;
}

void GLRenderer::setMaterialDiffuse(const array<float, 4>& diffuse)
{
copy(begin(diffuse), end(diffuse), begin(material.diffuse));
material.diffuse = diffuse;
}

void GLRenderer::setMaterialSpecular(const array<float, 4>& specular)
{
copy(begin(specular), end(specular), begin(material.specular));
material.specular = specular;
}

void GLRenderer::setMaterialEmission(const array<float, 4>& emission)
{
copy(begin(emission), end(emission), begin(material.emission));
material.emission = emission;
}

void GLRenderer::setMaterialShininess(float shininess)
Expand Down
2 changes: 1 addition & 1 deletion src/tdme/engine/subsystems/renderer/GLRenderer_Light.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ struct tdme::engine::subsystems::renderer::GLRenderer_Light
array<float, 4> position {{ 0.0f, 0.0f, 0.0f, 0.0f }};
array<float, 3> spotDirection {{ 0.0f, 0.0f, -1.0f }};
float spotExponent { 0.0f };
float spotCosCutoff { };
float spotCosCutoff { 0.0f };
float constantAttenuation { 1.0f };
float linearAttenuation { 0.0f };
float quadraticAttenuation { 0.0f };
Expand Down
2 changes: 1 addition & 1 deletion src/tdme/engine/subsystems/shadowmapping/ShadowMapping.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ void ShadowMapping::renderShadowMaps(const vector<Object3D*>& visibleObjects)
auto shadowMap = shadowMaps[i];
auto light = engine->getLightAt(i);
// set up light shader uniforms
renderer->getCameraMatrix().multiply(light->getPosition(), lightPosition4Transformed).scale(1.0f / lightPosition4Transformed.getW());
renderer->getCameraMatrix().multiply(light->getPosition(), lightPosition4Transformed).scale(Math::abs(lightPosition4Transformed.getW()) < Math::EPSILON?1.0:1.0f / lightPosition4Transformed.getW());
shader->setProgramLightPosition(lightPosition3Transformed.set(lightPosition4Transformed.getX(), lightPosition4Transformed.getY(), lightPosition4Transformed.getZ()));
renderer->getCameraMatrix().multiply(spotDirection4.set(light->getSpotDirection(), 0.0f), spotDirection4Transformed);
shader->setProgramLightDirection(spotDirection3Transformed.set(spotDirection4Transformed.getX(), spotDirection4Transformed.getY(), spotDirection4Transformed.getZ()));
Expand Down

0 comments on commit 27740f6

Please sign in to comment.