1848b8605Smrg/*
2848b8605Smrg * Copyright (C) 2011 LunarG, Inc.
3848b8605Smrg *
4848b8605Smrg * Permission is hereby granted, free of charge, to any person obtaining a
5848b8605Smrg * copy of this software and associated documentation files (the "Software"),
6848b8605Smrg * to deal in the Software without restriction, including without limitation
7848b8605Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8848b8605Smrg * and/or sell copies of the Software, and to permit persons to whom the
9848b8605Smrg * Software is furnished to do so, subject to the following conditions:
10848b8605Smrg *
11848b8605Smrg * The above copyright notice and this permission notice (including the next
12848b8605Smrg * paragraph) shall be included in all copies or substantial portions of the
13848b8605Smrg * Software.
14848b8605Smrg *
15848b8605Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16848b8605Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17848b8605Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
18848b8605Smrg * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19848b8605Smrg * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20848b8605Smrg * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21848b8605Smrg * DEALINGS IN THE SOFTWARE.
22848b8605Smrg */
23848b8605Smrg
24848b8605Smrg#ifndef TEXCOMPRESS_ETC1_H
25848b8605Smrg#define TEXCOMPRESS_ETC1_H
26848b8605Smrg
27848b8605Smrg#include <inttypes.h>
28848b8605Smrg#include "glheader.h"
29848b8605Smrg#include "texcompress.h"
30848b8605Smrg#include "texstore.h"
31848b8605Smrg
32848b8605Smrg
33848b8605SmrgGLboolean
34848b8605Smrg_mesa_texstore_etc1_rgb8(TEXSTORE_PARAMS);
35848b8605Smrg
36848b8605SmrgGLboolean
37848b8605Smrg_mesa_texstore_etc2_rgb8(TEXSTORE_PARAMS);
38848b8605Smrg
39848b8605SmrgGLboolean
40848b8605Smrg_mesa_texstore_etc2_srgb8(TEXSTORE_PARAMS);
41848b8605Smrg
42848b8605SmrgGLboolean
43848b8605Smrg_mesa_texstore_etc2_rgba8_eac(TEXSTORE_PARAMS);
44848b8605Smrg
45848b8605SmrgGLboolean
46848b8605Smrg_mesa_texstore_etc2_srgb8_alpha8_eac(TEXSTORE_PARAMS);
47848b8605Smrg
48848b8605SmrgGLboolean
49848b8605Smrg_mesa_texstore_etc2_r11_eac(TEXSTORE_PARAMS);
50848b8605Smrg
51848b8605SmrgGLboolean
52848b8605Smrg_mesa_texstore_etc2_rg11_eac(TEXSTORE_PARAMS);
53848b8605Smrg
54848b8605SmrgGLboolean
55848b8605Smrg_mesa_texstore_etc2_signed_r11_eac(TEXSTORE_PARAMS);
56848b8605Smrg
57848b8605SmrgGLboolean
58848b8605Smrg_mesa_texstore_etc2_signed_rg11_eac(TEXSTORE_PARAMS);
59848b8605Smrg
60848b8605SmrgGLboolean
61848b8605Smrg_mesa_texstore_etc2_rgb8_punchthrough_alpha1(TEXSTORE_PARAMS);
62848b8605Smrg
63848b8605SmrgGLboolean
64848b8605Smrg_mesa_texstore_etc2_srgb8_punchthrough_alpha1(TEXSTORE_PARAMS);
65848b8605Smrg
66848b8605Smrgvoid
67848b8605Smrg_mesa_etc1_unpack_rgba8888(uint8_t *dst_row,
68848b8605Smrg                           unsigned dst_stride,
69848b8605Smrg                           const uint8_t *src_row,
70848b8605Smrg                           unsigned src_stride,
71848b8605Smrg                           unsigned src_width,
72848b8605Smrg                           unsigned src_height);
73848b8605Smrgvoid
74848b8605Smrg_mesa_unpack_etc2_format(uint8_t *dst_row,
75848b8605Smrg                         unsigned dst_stride,
76848b8605Smrg                         const uint8_t *src_row,
77848b8605Smrg                         unsigned src_stride,
78848b8605Smrg                         unsigned src_width,
79848b8605Smrg                         unsigned src_height,
80b8e80941Smrg			 mesa_format format,
81b8e80941Smrg			 bool bgra);
82848b8605Smrg
83848b8605Smrgcompressed_fetch_func
84848b8605Smrg_mesa_get_etc_fetch_func(mesa_format format);
85848b8605Smrg
86848b8605Smrg#endif
87