X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fcore%2Fframeformat.cpp;h=7fe179331abad0f9e1d70859e0da500ae142378b;hp=30d7a47f36500d43172e8fece217e4ebb608c1ed;hb=38712d8ecc57d043a2419ffbaeeb57f7a6586f14;hpb=6353307898cd397e2bcde13e2448a8a678a60004 diff --git a/source/core/frameformat.cpp b/source/core/frameformat.cpp index 30d7a47f..7fe17933 100644 --- a/source/core/frameformat.cpp +++ b/source/core/frameformat.cpp @@ -1,17 +1,13 @@ #include "deviceinfo.h" #include "error.h" #include "frameformat.h" +#include "gl.h" using namespace std; namespace Msp { namespace GL { -FrameFormat::FrameFormat(): - count(0), - samples(1) -{ } - FrameFormat::FrameFormat(FrameAttachment fa): count(1), samples(1) @@ -36,8 +32,8 @@ FrameFormat FrameFormat::operator,(PixelFormat pf) const throw invalid_operation("FrameFormat::operator,"); FrameFormat r = *this; - UInt16 &fa = r.attachments[r.count-1]; - fa = make_typed_attachment(static_cast(fa), pf); + FrameAttachment &fa = r.attachments[r.count-1]; + fa = make_typed_attachment(fa, pf); return r; } @@ -48,8 +44,8 @@ FrameFormat FrameFormat::operator,(unsigned index) const throw invalid_operation("FrameFormat::operator,"); FrameFormat r = *this; - UInt16 &fa = r.attachments[r.count-1]; - fa = make_indexed_attachment(static_cast(fa), index); + FrameAttachment &fa = r.attachments[r.count-1]; + fa = make_indexed_attachment(fa, index); return r; } @@ -89,7 +85,7 @@ FrameAttachment make_typed_attachment(FrameAttachment fa, PixelFormat pf) } DataType type = get_component_type(pf); - return static_cast((fa&0xFC00) | (is_float(type)*0x80) | get_type_size(type)<<4 | get_component_count(comp)); + return static_cast((fa&0xFC00) | (is_float(type)*0x100) | get_type_size(type)<<4 | get_component_count(comp)); } FrameAttachment make_indexed_attachment(FrameAttachment fa, unsigned i) @@ -104,7 +100,7 @@ FrameAttachment make_indexed_attachment(FrameAttachment fa, unsigned i) throw invalid_argument("make_indexed_attachment"); } -PixelFormat get_attachment_pixelformat(UInt16 fa) +PixelFormat get_attachment_pixelformat(FrameAttachment fa) { PixelComponents comp; if(get_attach_point(fa)==get_attach_point(DEPTH_ATTACHMENT)) @@ -115,7 +111,7 @@ PixelFormat get_attachment_pixelformat(UInt16 fa) comp = static_cast(fa&7); DataType type; - if(fa&0x80) + if(fa&0x100) type = static_cast((fa&0x70)>>4 | 0x300); else type = static_cast((fa&0x70)>>4); @@ -123,15 +119,5 @@ PixelFormat get_attachment_pixelformat(UInt16 fa) return make_pixelformat(comp, type); } -GLenum get_gl_attachment(FrameAttachment fa) -{ - if(get_attach_point(fa)==get_attach_point(DEPTH_ATTACHMENT)) - return GL_DEPTH_ATTACHMENT; - else if(get_attach_point(fa)==get_attach_point(STENCIL_ATTACHMENT)) - return GL_STENCIL_ATTACHMENT; - else - return GL_COLOR_ATTACHMENT0+get_attach_point(fa); -} - } // namespace GL } // namespace Msp