Browse Source

Merge branch 'master' into compatibility

snapshot-2014-06-compatibility
Vladimír Vondruš 12 years ago
parent
commit
3361d28246
  1. 13
      src/Magnum/Framebuffer.cpp
  2. 6
      src/Magnum/MeshTools/Compile.cpp
  3. 4
      src/Magnum/TextureTools/DistanceFieldShader.frag

13
src/Magnum/Framebuffer.cpp

@ -28,6 +28,7 @@
#include <Corrade/Containers/Array.h>
#include "Magnum/Context.h"
#include "Magnum/DefaultFramebuffer.h"
#include "Magnum/Extensions.h"
#include "Magnum/Image.h"
#include "Magnum/Renderbuffer.h"
@ -92,7 +93,17 @@ Framebuffer::~Framebuffer() {
/* If bound, remove itself from state */
Implementation::FramebufferState* state = Context::current()->state().framebuffer;
if(state->readBinding == _id) state->readBinding = 0;
if(state->drawBinding == _id) state->drawBinding = 0;
/* For draw binding reset also viewport */
if(state->drawBinding == _id) {
state->drawBinding = 0;
/**
* @todo Less ugly solution (need to call setViewportInternal() to
* reset the viewport to size of default framebuffer)
*/
defaultFramebuffer.bind(FramebufferTarget::Draw);
}
glDeleteFramebuffers(1, &_id);
}

6
src/Magnum/MeshTools/Compile.cpp

@ -83,7 +83,7 @@ std::tuple<Mesh, std::unique_ptr<Buffer>, std::unique_ptr<Buffer>> compile(const
std::tie(indexData, indexType, indexStart, indexEnd) = MeshTools::compressIndices(meshData.indices());
indexBuffer.reset(new Buffer{Buffer::Target::ElementArray});
indexBuffer->setData(data, usage);
indexBuffer->setData(indexData, usage);
mesh.setCount(meshData.indices().size())
.setIndexBuffer(*indexBuffer, 0, indexType, indexStart, indexEnd);
@ -155,12 +155,12 @@ std::tuple<Mesh, std::unique_ptr<Buffer>, std::unique_ptr<Buffer>> compile(const
std::tie(indexData, indexType, indexStart, indexEnd) = MeshTools::compressIndices(meshData.indices());
indexBuffer.reset(new Buffer{Buffer::Target::ElementArray});
indexBuffer->setData(data, usage);
indexBuffer->setData(indexData, usage);
mesh.setCount(meshData.indices().size())
.setIndexBuffer(*indexBuffer, 0, indexType, indexStart, indexEnd);
/* Else set vertex count */
} mesh.setCount(meshData.positions(0).size());
} else mesh.setCount(meshData.positions(0).size());
return std::make_tuple(std::move(mesh), std::move(vertexBuffer), std::move(indexBuffer));
}

4
src/Magnum/TextureTools/DistanceFieldShader.frag

@ -64,7 +64,7 @@ out lowp float value;
#ifdef TEXELFETCH_USABLE
mediump ivec2 rotate(const mediump ivec2 vec) {
return mediump ivec2(-vec.y, vec.x);
return ivec2(-vec.y, vec.x);
}
bool hasValue(const mediump ivec2 position, const mediump ivec2 offset) {
@ -72,7 +72,7 @@ bool hasValue(const mediump ivec2 position, const mediump ivec2 offset) {
}
#else
mediump vec2 rotate(const mediump vec2 vec) {
return mediump vec2(-vec.y, vec.x);
return vec2(-vec.y, vec.x);
}
bool hasValue(const mediump vec2 position, const mediump vec2 offset) {

Loading…
Cancel
Save