|
@@ -483,16 +483,16 @@ class Pixels {
|
|
public static function calcStride( width : Int, format : PixelFormat ) {
|
|
public static function calcStride( width : Int, format : PixelFormat ) {
|
|
return width * switch( format ) {
|
|
return width * switch( format ) {
|
|
case ARGB, BGRA, RGBA, SRGB, SRGB_ALPHA: 4;
|
|
case ARGB, BGRA, RGBA, SRGB, SRGB_ALPHA: 4;
|
|
- case RGBA16F: 8;
|
|
|
|
|
|
+ case RGBA16U, RGBA16F: 8;
|
|
case RGBA32F: 16;
|
|
case RGBA32F: 16;
|
|
case R8: 1;
|
|
case R8: 1;
|
|
- case R16F: 2;
|
|
|
|
|
|
+ case R16U, R16F: 2;
|
|
case R32F: 4;
|
|
case R32F: 4;
|
|
case RG8: 2;
|
|
case RG8: 2;
|
|
case RG16F: 4;
|
|
case RG16F: 4;
|
|
case RG32F: 8;
|
|
case RG32F: 8;
|
|
case RGB8: 3;
|
|
case RGB8: 3;
|
|
- case RGB16F: 6;
|
|
|
|
|
|
+ case RGB16U, RGB16F: 6;
|
|
case RGB32F: 12;
|
|
case RGB32F: 12;
|
|
case RGB10A2: 4;
|
|
case RGB10A2: 4;
|
|
case RG11B10UF: 4;
|
|
case RG11B10UF: 4;
|
|
@@ -511,12 +511,12 @@ class Pixels {
|
|
**/
|
|
**/
|
|
public static function getChannelOffset( format : PixelFormat, channel : Channel ) {
|
|
public static function getChannelOffset( format : PixelFormat, channel : Channel ) {
|
|
return switch( format ) {
|
|
return switch( format ) {
|
|
- case R8, R16F, R32F:
|
|
|
|
|
|
+ case R8, R16F, R32F, R16U:
|
|
if( channel == R ) 0 else -1;
|
|
if( channel == R ) 0 else -1;
|
|
case RG8, RG16F, RG32F:
|
|
case RG8, RG16F, RG32F:
|
|
var p = calcStride(1,format);
|
|
var p = calcStride(1,format);
|
|
[0, p, -1, -1][channel.toInt()];
|
|
[0, p, -1, -1][channel.toInt()];
|
|
- case RGB8, RGB16F, RGB32F:
|
|
|
|
|
|
+ case RGB8, RGB16F, RGB32F, RGB16U:
|
|
var p = calcStride(1,format);
|
|
var p = calcStride(1,format);
|
|
[0, p, p<<1, -1][channel.toInt()];
|
|
[0, p, p<<1, -1][channel.toInt()];
|
|
case ARGB:
|
|
case ARGB:
|
|
@@ -525,7 +525,7 @@ class Pixels {
|
|
[2, 1, 0, 3][channel.toInt()];
|
|
[2, 1, 0, 3][channel.toInt()];
|
|
case RGBA, SRGB, SRGB_ALPHA:
|
|
case RGBA, SRGB, SRGB_ALPHA:
|
|
channel.toInt();
|
|
channel.toInt();
|
|
- case RGBA16F:
|
|
|
|
|
|
+ case RGBA16F, RGBA16U:
|
|
channel.toInt() * 2;
|
|
channel.toInt() * 2;
|
|
case RGBA32F:
|
|
case RGBA32F:
|
|
channel.toInt() * 4;
|
|
channel.toInt() * 4;
|