nxdk_pgraph_tests
A collection of tests for the Xbox nv2a graphics processor
 
Loading...
Searching...
No Matches
lighting_spotlight_tests.h
1#ifndef NXDK_PGRAPH_TESTS_LIGHTING_SPOTLIGHT_TESTS_H
2#define NXDK_PGRAPH_TESTS_LIGHTING_SPOTLIGHT_TESTS_H
3
4#include <cstdint>
5#include <memory>
6#include <vector>
7
8#include "test_suite.h"
9#include "xbox_math_types.h"
10
11class TestHost;
12class VertexBuffer;
13
37 public:
40 typedef struct Spotlight {
41 Spotlight(const XboxMath::vector_t& position, const XboxMath::vector_t& direction, float phi, float theta,
42 float attenuation_1, float attenuation_2, float attenuation_3, float falloff_1, float falloff_2,
43 float falloff_3);
44 void Commit(uint32_t light_index, const XboxMath::matrix4_t& view_matrix) const;
45
46 XboxMath::vector_t position;
47
48 XboxMath::vector_t direction;
49
51 float phi;
52
54 float theta;
55
57 float attenuation[3];
58
60 float falloff[3];
62
63 public:
64 LightingSpotlightTests(TestHost& host, std::string output_dir, const Config& config);
65
66 void Initialize() override;
67 void Deinitialize() override;
68
69 private:
70 void Test(const std::string& name, const Spotlight& light);
71 void TestFixed(const std::string& name, const Spotlight& light);
72
73 void CreateGeometry();
74
75 private:
76 std::shared_ptr<VertexBuffer> vertex_buffer_plane_;
77 std::shared_ptr<VertexBuffer> vertex_buffer_cylinder_;
78};
79
80#endif // NXDK_PGRAPH_TESTS_LIGHTING_SPOTLIGHT_TESTS_H
Definition lighting_spotlight_tests.h:36
void Deinitialize() override
Called to tear down the test suite.
Definition lighting_spotlight_tests.cpp:167
void Initialize() override
Called to initialize the test suite.
Definition lighting_spotlight_tests.cpp:130
Definition light.h:97
Definition test_host.h:47
Definition test_suite.h:20
Definition vertex_buffer.h:204
Definition lighting_spotlight_tests.h:40
float theta
umbra (inner cone) angle in degrees.
Definition lighting_spotlight_tests.h:54
float phi
penumbra (outer cone) angle in degrees.
Definition lighting_spotlight_tests.h:51
float attenuation[3]
Attenuation: {constant, linear (distance), quadratic (distance^2)}.
Definition lighting_spotlight_tests.h:57
float falloff[3]
Raw nv2a falloff coefficients.
Definition lighting_spotlight_tests.h:60