Browse Source

Some bug fixes

Panagiotis Christopoulos Charitos 9 years ago
parent
commit
aad1a519c7
4 changed files with 31 additions and 7 deletions
  1. 1 1
      shaders/Pps.frag.glsl
  2. 1 1
      src/anki/core/Config.cpp
  3. 1 1
      src/anki/renderer/Renderer.cpp
  4. 28 4
      src/anki/util/Logger.cpp

+ 1 - 1
shaders/Pps.frag.glsl

@@ -130,7 +130,7 @@ void main()
 #endif
 
 #if SHARPEN_ENABLED
-	out_color = textureCatmullRom4Samples();
+	out_color = sharpen(u_isRt, uv);
 #elif SMAA_ENABLED
 	out_color = SMAANeighborhoodBlendingPS(uv, in_smaaOffset, u_isRt, u_smaaBlendTex).rgb;
 #else

+ 1 - 1
src/anki/core/Config.cpp

@@ -43,7 +43,7 @@ Config::Config()
 	newOption("sslf.enabled", true);
 
 	newOption("pps.enabled", true);
-	newOption("pps.sharpen", true);
+	newOption("pps.sharpen", false);
 	newOption("pps.gammaCorrection", true);
 
 	newOption("ir.enabled", true);

+ 1 - 1
src/anki/renderer/Renderer.cpp

@@ -250,7 +250,7 @@ Error Renderer::render(RenderingContext& ctx)
 		TextureUsageBit::SAMPLED_FRAGMENT | TextureUsageBit::FRAMEBUFFER_ATTACHMENT_READ,
 		TextureSurfaceInfo(0, 0, 0, 0));
 
-	// Batch FS & SSAO
+	// Batch FS & SSAO & VOL
 	m_fs->run(ctx);
 	m_ssao->run(ctx);
 	m_vol->run(ctx);

+ 28 - 4
src/anki/util/Logger.cpp

@@ -54,13 +54,37 @@ void Logger::write(const char* file, int line, const char* func, MessageType typ
 
 void Logger::writeFormated(const char* file, int line, const char* func, MessageType type, const char* fmt, ...)
 {
-	char buffer[1024 * 40];
+	char buffer[1024 * 10];
 	va_list args;
 
 	va_start(args, fmt);
-	vsnprintf(buffer, sizeof(buffer), fmt, args);
-	write(file, line, func, type, buffer);
-	va_end(args);
+	I len = vsnprintf(buffer, sizeof(buffer), fmt, args);
+	if(len < 0)
+	{
+		fprintf(stderr, "Logger::writeFormated() failed. Will not recover");
+		abort();
+	}
+	else if(len < I(sizeof(buffer)))
+	{
+		write(file, line, func, type, buffer);
+		va_end(args);
+	}
+	else
+	{
+		// Not enough space.
+
+		va_end(args);
+		va_start(args, fmt);
+
+		const PtrSize newSize = len + 1;
+		char* newBuffer = static_cast<char*>(malloc(newSize));
+		len = vsnprintf(newBuffer, newSize, fmt, args);
+
+		write(file, line, func, type, newBuffer);
+
+		free(newBuffer);
+		va_end(args);
+	}
 }
 
 void Logger::defaultSystemMessageHandler(void*, const Info& info)