1// Copyright 2016 The SwiftShader Authors. All Rights Reserved.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15class ETC_Decoder
16{
17public:
18 enum InputType
19 {
20 ETC_R_SIGNED,
21 ETC_R_UNSIGNED,
22 ETC_RG_SIGNED,
23 ETC_RG_UNSIGNED,
24 ETC_RGB,
25 ETC_RGB_PUNCHTHROUGH_ALPHA,
26 ETC_RGBA
27 };
28
29 /// ETC_Decoder::Decode - Decodes 1 to 4 channel images to 8 bit output
30 /// @param src Pointer to ETC2 encoded image
31 /// @param dst Pointer to BGRA, 8 bit output
32 /// @param w src image width
33 /// @param h src image height
34 /// @param dstW dst image width
35 /// @param dstH dst image height
36 /// @param dstPitch dst image pitch (bytes per row)
37 /// @param dstBpp dst image bytes per pixel
38 /// @param inputType src's format
39 /// @return true if the decoding was performed
40 static bool Decode(const unsigned char* src, unsigned char *dst, int w, int h, int dstW, int dstH, int dstPitch, int dstBpp, InputType inputType);
41};
42