Merge pull request #218 from mrcdk/fix_renderer

Fix the webGL and SDL2 renderer's stencil and depth buffers
This commit is contained in:
Joshua Granick
2014-09-05 10:16:39 -07:00
3 changed files with 21 additions and 18 deletions

View File

@@ -58,13 +58,16 @@ class Renderer {
#else
var webgl:RenderingContext = cast window.canvas.getContext ("webgl");
var options = {
alpha: true,
antialias: window.config.antialiasing > 0,
depth: window.config.depthBuffer,
premultipliedAlpha: true,
stencil: window.config.stencilBuffer,
preserveDrawingBuffer: false
};
if (webgl == null) {
webgl = cast window.canvas.getContext ("experimental-webgl");
}
var webgl:RenderingContext = cast window.canvas.getContextWebGL(options);
#end

View File

@@ -15,18 +15,6 @@ namespace lime {
if (window->flags & WINDOW_FLAG_VSYNC) sdlFlags |= SDL_RENDERER_PRESENTVSYNC;
if (window->flags & WINDOW_FLAG_DEPTH_BUFFER) {
SDL_GL_SetAttribute (SDL_GL_DEPTH_SIZE, 32 - (window->flags & WINDOW_FLAG_STENCIL_BUFFER) ? 8 : 0);
}
if (window->flags & WINDOW_FLAG_STENCIL_BUFFER) {
SDL_GL_SetAttribute (SDL_GL_STENCIL_SIZE, 8);
}
sdlRenderer = SDL_CreateRenderer (sdlWindow, -1, sdlFlags);
OpenGLBindings::Init ();

View File

@@ -15,6 +15,18 @@ namespace lime {
if (flags & WINDOW_FLAG_RESIZABLE) sdlFlags |= SDL_WINDOW_RESIZABLE;
if (flags & WINDOW_FLAG_BORDERLESS) sdlFlags |= SDL_WINDOW_BORDERLESS;
if (flags & WINDOW_FLAG_DEPTH_BUFFER) {
SDL_GL_SetAttribute (SDL_GL_DEPTH_SIZE, 32 - (flags & WINDOW_FLAG_STENCIL_BUFFER) ? 8 : 0);
}
if (flags & WINDOW_FLAG_STENCIL_BUFFER) {
SDL_GL_SetAttribute (SDL_GL_STENCIL_SIZE, 8);
}
sdlWindow = SDL_CreateWindow (title, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, width, height, sdlFlags);
}