|
|
@@ -289,8 +289,9 @@ void Is::init(const RendererInitializer& initializer)
|
|
|
//==============================================================================
|
|
|
void Is::initInternal(const RendererInitializer& initializer)
|
|
|
{
|
|
|
- width = initializer.renderingQuality * initializer.width;
|
|
|
- height = initializer.renderingQuality * initializer.height;
|
|
|
+ drawToDefaultFbo = initializer.is.drawToDefaultFbo;
|
|
|
+ width = initializer.width / initializer.renderingQuality;
|
|
|
+ height = initializer.height / initializer.renderingQuality;
|
|
|
|
|
|
//
|
|
|
// Init the passes
|
|
|
@@ -303,8 +304,8 @@ void Is::initInternal(const RendererInitializer& initializer)
|
|
|
std::string pps =
|
|
|
"#define TILES_X_COUNT " + std::to_string(TILES_X_COUNT) + "\n"
|
|
|
"#define TILES_Y_COUNT " + std::to_string(TILES_Y_COUNT) + "\n"
|
|
|
- "#define RENDERER_WIDTH " + std::to_string(width) + "\n"
|
|
|
- "#define RENDERER_HEIGHT " + std::to_string(height) + "\n"
|
|
|
+ "#define RENDERER_WIDTH " + std::to_string(r->getWidth()) + "\n"
|
|
|
+ "#define RENDERER_HEIGHT " + std::to_string(r->getHeight()) + "\n"
|
|
|
"#define MAX_LIGHTS_PER_TILE " + std::to_string(MAX_LIGHTS_PER_TILE)
|
|
|
+ "\n"
|
|
|
"#define MAX_POINT_LIGHTS " + std::to_string(MAX_POINT_LIGHTS) + "\n"
|
|
|
@@ -328,7 +329,7 @@ void Is::initInternal(const RendererInitializer& initializer)
|
|
|
//
|
|
|
|
|
|
// IS FBO
|
|
|
- Renderer::createFai(width, height, GL_RGB8,
|
|
|
+ Renderer::createFai(r->getWidth(), r->getHeight(), GL_RGB8,
|
|
|
GL_RGB, GL_UNSIGNED_INT, fai);
|
|
|
fbo.create();
|
|
|
fbo.setColorAttachments({&fai});
|
|
|
@@ -672,8 +673,20 @@ void Is::lightPass()
|
|
|
sm.run(&shadowCasters[0], spotsShadowCount, shadowmapLayers);
|
|
|
|
|
|
// Prepare state
|
|
|
- fbo.bind();
|
|
|
- GlStateSingleton::get().setViewport(0, 0, width, height);
|
|
|
+ if(drawToDefaultFbo)
|
|
|
+ {
|
|
|
+ ANKI_ASSERT(!r->getPps().getEnabled());
|
|
|
+ Fbo::unbindAll();
|
|
|
+ GlStateSingleton::get().setViewport(
|
|
|
+ 0, 0, width, height);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ANKI_ASSERT(r->getPps().getEnabled());
|
|
|
+ fbo.bind();
|
|
|
+ GlStateSingleton::get().setViewport(
|
|
|
+ 0, 0, r->getWidth(), r->getHeight());
|
|
|
+ }
|
|
|
GlStateSingleton::get().disable(GL_DEPTH_TEST);
|
|
|
GlStateSingleton::get().disable(GL_BLEND);
|
|
|
|