OZ++ Class: OpenGLImageInfo |
/****************************************************************************** * * Copyright (c) 2017 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions, and the following disclaimer. * * 2. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * * OpenGLImageInfo.h * *****************************************************************************/ #pragma once #include <oz++/CommonObject.h> #include <oz++/SmartPtrs.h> //The following values are taken from gl.h #ifndef GL_RGBA #define GL_RGBA 0x1908 #endif #ifndef GL_BGRA #define GL_BGRA 0x80E1 #endif #ifndef GL_UNSIGNED_BYTE #define GL_UNSIGNED_BYTE 0x1401 #endif namespace OZ { class OpenGLImageInfo :public CommonObject { public: int depth; //Image depth int channels; //Image depth int xformat; //X11 XImage format int internalFormat; //OpenGL internal pixel format GL_RGB, .... int width; int height; int format; //OpenGL pixel format int type; //OpenGL type int widthStep; int imageSize; SmartPtrs<uint32_t> imageData; public: OpenGLImageInfo(int xinternal = GL_RGBA, int xformat = GL_BGRA, int xtype = GL_UNSIGNED_BYTE) :depth(0) ,xformat(0) ,internalFormat(xinternal) ,width(0) ,height(0) ,format(xformat) ,type(xtype) ,widthStep(0) ,imageSize(0) { } }; }