nux-1.14.0
BitmapFormats.cpp
00001 /*
00002  * Copyright 2010 Inalogic® Inc.
00003  *
00004  * This program is free software: you can redistribute it and/or modify it
00005  * under the terms of the GNU Lesser General Public License, as
00006  * published by the  Free Software Foundation; either version 2.1 or 3.0
00007  * of the License.
00008  *
00009  * This program is distributed in the hope that it will be useful, but
00010  * WITHOUT ANY WARRANTY; without even the implied warranties of
00011  * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
00012  * PURPOSE.  See the applicable version of the GNU Lesser General Public
00013  * License for more details.
00014  *
00015  * You should have received a copy of both the GNU Lesser General Public
00016  * License along with this program. If not, see <http://www.gnu.org/licenses/>
00017  *
00018  * Authored by: Jay Taoko <jaytaoko@inalogic.com>
00019  *
00020  */
00021 
00022 
00023 #include "NuxCore/NuxCore.h"
00024 #include "BitmapFormats.h"
00025 
00026 namespace nux
00027 {
00028 
00029   PixelFormatInfo       GPixelFormats[] =
00030   {
00031     // Name                                             BlockSizeX      BlockSizeY      BlockSizeZ      BlockBytes      NumComponents   Platform  Internal  Type    Memory      Flags  Supported        EPixelFormat
00032     //                                                                                          Format    Format            Alignment
00033     { TEXT ("BITFMT_UNKNOWN"),           0,          0,          0,      0,              0,          0,      0,       0,      0,          0,            false       },  //      BITFMT_Unknown
00034     { TEXT ("BITFMT_R8G8B8A8"),         1,                      1,              1,      4,              4,          0,      0,       0,      4,          0,             true        },  //      BITFMT_R8G8B8A8
00035     { TEXT ("BITFMT_A8B8G8R8"),         1,                      1,              1,      4,              4,          0,      0,       0,      4,          0,             true        },  //      BITFMT_A8B8G8R8
00036     { TEXT ("BITFMT_B8G8R8A8"),         1,                      1,              1,      4,              4,          0,      0,       0,      4,          0,             true        },  //      BITFMT_B8G8R8A8
00037     { TEXT ("BITFMT_A8R8G8B8"),         1,                      1,              1,      4,              4,          0,      0,       0,      4,          0,             true        },  //      BITFMT_A8R8G8B8
00038     { TEXT ("BITFMT_R8G8B8"),            1,          1,         1,      3,              3,          0,      0,       0,      1,          0,             true        },  //      BITFMT_R8G8B8
00039     { TEXT ("BITFMT_B8G8R8"),            1,          1,         1,      3,              3,          0,      0,       0,      1,          0,             true        },  //      BITFMT_B8G8R8
00040     { TEXT ("BITFMT_R5G6B5"),            1,          1,          1,      2,              3,          0,      0,       0,      1,          0,            true        },  //      BITFMT_R5G6B5
00041     { TEXT ("BITFMT_RGBA16F"),           1,          1,          1,      8,              4,          0,      0,       0,      1,          0,            true        },  //      BITFMT_RGBA16F
00042     { TEXT ("BITFMT_RGB32F"),            1,          1,          1,      12,             3,          0,      0,       0,      1,          0,            true        },  //      BITFMT_RGB32F
00043     { TEXT ("BITFMT_RGBA32F"),           1,          1,          1,      16,             4,          0,      0,       0,      1,          0,            true        },  //      BITFMT_RGBA32F
00044     { TEXT ("BITFMT_D24S8"),             1,          1,          1,      4,              2,          0,      0,       0,      1,          0,            true        },  //      BITFMT_D24S8
00045     { TEXT ("BITFMT_DXT1"),              4,                     4,              1,      8,              3,          0,      0,       0,      1,          0,             true        },  //      BITFMT_DXT1
00046     { TEXT ("BITFMT_DXT2"),              4,                     4,              1,      16,             4,          0,      0,       0,      1,          0,             true        },  //      BITFMT_DXT2
00047     { TEXT ("BITFMT_DXT3"),              4,                     4,              1,      16,             4,          0,      0,       0,      1,          0,             true        },  //      BITFMT_DXT3
00048     { TEXT ("BITFMT_DXT4"),              4,                     4,              1,      16,             4,          0,      0,       0,      1,          0,             true        },  //      BITFMT_DXT4
00049     { TEXT ("BITFMT_DXT5"),              4,                     4,              1,      16,             4,          0,      0,       0,      1,          0,             true        },  //      BITFMT_DXT5
00050     { TEXT ("BITFMT_R10G10B10A2"),          1,                  1,              1,      4,              4,          0,      0,       0,      4,          0,             true        },  //      BITFMT_R10G10B10A2
00051     { TEXT ("BITFMT_A2B10G10R10"),          1,                  1,              1,      4,              4,          0,      0,       0,      4,          0,             true        },  //      BITFMT_A2B10G10R10
00052     { TEXT ("BITFMT_B10G10R10A2"),          1,                  1,              1,      4,              4,          0,      0,       0,      4,          0,             true        },  //      BITFMT_B10G10R10A2
00053     { TEXT ("BITFMT_A2R10G10B10"),          1,                  1,              1,      4,              4,          0,      0,       0,      4,          0,             true        },  //      BITFMT_A2R10G10B10
00054 
00055     { TEXT ("BITFMT_A8"),                   1,                  1,              1,          1,          1,          0,      0,       0,      1,          0,             true        },  //      BITFMT_A8
00056 
00057     { TEXT ("BITFMT_END_GFX_FORMATS"),  0,          0,          0,          0,          0,          0,      0,       0,      0,          0,             false       }, //  BITFMT_END_GFX_FORMATS
00058   };
00059 
00060 
00061   ReadBackPixelFormatInfo       GReadBackPixelFormats[] =
00062   {
00063     // Name                                                 BlockBytes  NumComponents    Format        Type       Flags    Supported                    EPixelFormat
00064 
00065     { TEXT ("BITFMT_UNKNOWN"),           0,          0,                         0,              0,         0,           false       },  //      BITFMT_Unknown
00066     { TEXT ("BITFMT_R8G8B8A8"),         4,          4,                          0,              0,         0,           true        },  //      BITFMT_R8G8B8A8
00067     { TEXT ("BITFMT_A8B8G8R8"),         4,          4,                          0,              0,         0,           true        },  //      BITFMT_A8B8G8R8
00068     { TEXT ("BITFMT_B8G8R8A8"),         4,          4,                          0,              0,         0,           true        },  //      BITFMT_B8G8R8A8
00069     { TEXT ("BITFMT_A8R8G8B8"),         4,          4,                          0,              0,         0,           true        },  //      BITFMT_A8R8G8B8
00070     { TEXT ("BITFMT_R8G8B8"),            3,          3,                         0,              0,         0,           true        },  //      BITFMT_R8G8B8
00071     { TEXT ("BITFMT_B8G8R8"),            3,          3,                         0,              0,         0,           true        },  //      BITFMT_B8G8R8
00072     { TEXT ("BITFMT_R5G6B5"),            2,          3,              0,          0,         0,           true        }, //      BITFMT_R5G6B5
00073     { TEXT ("BITFMT_RGBA16F"),           8,          4,                         0,              0,         0,           true        },  //      BITFMT_RGBA16F
00074     { TEXT ("BITFMT_RGBA32F"),           16,         4,                         0,              0,         0,           true        },  //      BITFMT_RGBA32F
00075     { TEXT ("BITFMT_D24S8"),             4,          2,              0,          0,         0,           true        }, //      BITFMT_D24S8
00076     { TEXT ("BITFMT_DXT1"),              8,          3,                         0,              0,         0,           true        },  //      BITFMT_DXT1
00077     { TEXT ("BITFMT_DXT2"),              16,         4,                         0,              0,         0,           true        },  //      BITFMT_DXT2
00078     { TEXT ("BITFMT_DXT3"),              16,         4,                         0,              0,         0,           true        },  //      BITFMT_DXT3
00079     { TEXT ("BITFMT_DXT4"),              16,         4,                         0,              0,         0,           true        },  //      BITFMT_DXT4
00080     { TEXT ("BITFMT_DXT5"),              16,         4,                         0,              0,         0,           true        },  //      BITFMT_DXT5
00081     { TEXT ("BITFMT_R10G10B10A2"),          4,          4,                              0,              0,         0,           true        },  //      BITFMT_R10G10B10A2
00082     { TEXT ("BITFMT_A2B10G10R10"),          4,          4,                              0,              0,         0,           true        },  //      BITFMT_A2B10G10R10
00083     { TEXT ("BITFMT_B10G10R10A2"),          4,          4,                              0,              0,         0,           true        },  //      BITFMT_B10G10R10A2
00084     { TEXT ("BITFMT_A2R10G10B10"),          4,          4,                              0,              0,         0,           true        },  //      BITFMT_A2R10G10B10
00085 
00086     { TEXT ("BITFMT_A8"),                   1,          1,                              0,              0,         0,           true        },  //      BITFMT_A8
00087 
00088     { TEXT ("BITFMT_END_GFX_FORMATS"),   0,          0,                         0,              0,         0,               false       }, //  BITFMT_END_GFX_FORMATS
00089   };
00090 
00091 }
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends