2013-11-10 20:14:10 +00:00
|
|
|
#include "BaseTestCase.h"
|
2013-05-28 12:56:50 +00:00
|
|
|
|
2013-11-10 16:03:07 +00:00
|
|
|
#include <cmath>
|
2013-11-10 20:14:10 +00:00
|
|
|
#include "renderer.h"
|
2013-11-14 17:47:03 +00:00
|
|
|
#include "CameraDefinition.h"
|
2013-11-10 20:14:10 +00:00
|
|
|
#include "System.h"
|
2013-05-28 12:56:50 +00:00
|
|
|
|
2013-11-10 20:14:10 +00:00
|
|
|
static Color _postProcessFragment(Renderer*, Vector3 location, void*)
|
2013-05-28 12:56:50 +00:00
|
|
|
{
|
|
|
|
/* Checker-board */
|
|
|
|
double x = fmod(location.x, 0.2);
|
|
|
|
double z = fmod(location.z, 0.2);
|
|
|
|
if (x < 0.0)
|
|
|
|
{
|
|
|
|
x = 0.2 + x;
|
|
|
|
}
|
|
|
|
if (z < 0.0)
|
|
|
|
{
|
|
|
|
z = 0.2 + z;
|
|
|
|
}
|
2013-05-28 14:25:29 +00:00
|
|
|
if ((x > 0.1) ^ (z > 0.1))
|
2013-05-28 12:56:50 +00:00
|
|
|
{
|
|
|
|
return COLOR_WHITE;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
return COLOR_BLACK;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-11-10 20:14:10 +00:00
|
|
|
TEST(Render, quad)
|
2013-05-28 12:56:50 +00:00
|
|
|
{
|
2013-06-14 11:39:45 +00:00
|
|
|
Color col;
|
2013-05-28 12:56:50 +00:00
|
|
|
Renderer* renderer = rendererCreate();
|
|
|
|
|
|
|
|
renderer->render_width = 800;
|
|
|
|
renderer->render_height = 600;
|
|
|
|
renderer->render_quality = 1;
|
2013-06-14 11:39:45 +00:00
|
|
|
renderSetToneMapping(renderer->render_area, TONE_MAPPING_CLAMP, 0.0);
|
2013-05-28 12:56:50 +00:00
|
|
|
|
2013-11-14 17:47:03 +00:00
|
|
|
renderer->render_camera->setLocationCoords(0.0, 0.5, 2.0);
|
|
|
|
renderer->render_camera->setTargetCoords(0.0, 0.5, 0.0);
|
|
|
|
renderer->render_camera->setRenderSize(renderer->render_width, renderer->render_height);
|
2013-05-28 12:56:50 +00:00
|
|
|
|
|
|
|
RenderParams params = {renderer->render_width, renderer->render_height, 1, 1};
|
|
|
|
renderSetParams(renderer->render_area, params);
|
|
|
|
|
2013-11-13 19:07:35 +00:00
|
|
|
renderSetBackgroundColor(renderer->render_area, COLOR_BLUE);
|
2013-05-28 12:56:50 +00:00
|
|
|
renderClear(renderer->render_area);
|
|
|
|
|
|
|
|
renderer->pushQuad(renderer, v3(-1.0, 0.0, 1.0), v3(-1.0, 0.0, -1.0), v3(1.0, 0.0, -1.0), v3(1.0, 0.0, 1.0), _postProcessFragment, NULL);
|
2013-11-10 20:14:10 +00:00
|
|
|
renderPostProcess(renderer->render_area, System::getCoreCount());
|
2013-05-28 12:56:50 +00:00
|
|
|
|
2013-06-14 11:39:45 +00:00
|
|
|
col = renderGetPixel(renderer->render_area, 399, 599 - 435);
|
2013-11-10 20:14:10 +00:00
|
|
|
ASSERT_COLOR_RGBA(col, 1.0, 1.0, 1.0, 1.0);
|
2013-06-14 11:39:45 +00:00
|
|
|
col = renderGetPixel(renderer->render_area, 399, 599 - 436);
|
2013-11-10 20:14:10 +00:00
|
|
|
ASSERT_COLOR_RGBA(col, 0.0, 0.0, 0.0, 1.0);
|
2013-06-14 11:39:45 +00:00
|
|
|
col = renderGetPixel(renderer->render_area, 400, 599 - 435);
|
2013-11-10 20:14:10 +00:00
|
|
|
ASSERT_COLOR_RGBA(col, 0.0, 0.0, 0.0, 1.0);
|
2013-06-14 11:39:45 +00:00
|
|
|
col = renderGetPixel(renderer->render_area, 400, 599 - 436);
|
2013-11-10 20:14:10 +00:00
|
|
|
ASSERT_COLOR_RGBA(col, 1.0, 1.0, 1.0, 1.0);
|
2013-06-14 11:39:45 +00:00
|
|
|
|
2013-05-28 12:56:50 +00:00
|
|
|
renderSaveToFile(renderer->render_area, "./output/test_render_quad.png");
|
|
|
|
|
|
|
|
rendererDelete(renderer);
|
|
|
|
}
|