1b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org//
286846e242e61e16d19e7a07492c081ee29a59694Geoff Lang// Copyright (c) 2013-2014 The ANGLE Project Authors. All rights reserved.
3b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org// Use of this source code is governed by a BSD-style license that can be
4b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org// found in the LICENSE file.
5b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org//
6b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
7b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org// loadimage.h: Defines image loading functions
8b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
9b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org#ifndef LIBGLESV2_RENDERER_LOADIMAGE_H_
10b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org#define LIBGLESV2_RENDERER_LOADIMAGE_H_
11b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
1286846e242e61e16d19e7a07492c081ee29a59694Geoff Lang#include "libGLESv2/angletypes.h"
13a32a2ba4da2e0f12ab277fc06830e84d70e0a37eshannonwoods@chromium.org
1486846e242e61e16d19e7a07492c081ee29a59694Geoff Lang#include <cstdint>
15b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
1686846e242e61e16d19e7a07492c081ee29a59694Geoff Langnamespace rx
178d46e91406929e3726b0f905b6ca861fd7938a13shannonwoods@chromium.org{
18b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
1986846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadA8ToRGBA8(size_t width, size_t height, size_t depth,
2086846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                   const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
2186846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                   uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
22b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
2386846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadA8ToBGRA8(size_t width, size_t height, size_t depth,
2486846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                   const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
2586846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                   uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
26b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
2786846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadA8ToBGRA8_SSE2(size_t width, size_t height, size_t depth,
2886846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                        const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
2986846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                        uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
30b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
3186846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadA32FToRGBA32F(size_t width, size_t height, size_t depth,
3286846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                       const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
3386846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                       uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
34b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
3586846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadA16FToRGBA16F(size_t width, size_t height, size_t depth,
3686846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                       const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
3786846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                       uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
38b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
3986846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadL8ToRGBA8(size_t width, size_t height, size_t depth,
4086846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                   const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
4186846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                   uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
42b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
4386846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadL8ToBGRA8(size_t width, size_t height, size_t depth,
4486846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                   const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
4586846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                   uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
46b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
4786846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadL32FToRGBA32F(size_t width, size_t height, size_t depth,
4886846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                       const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
4986846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                       uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
50b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
5186846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadL16FToRGBA16F(size_t width, size_t height, size_t depth,
5286846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                       const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
5386846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                       uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
54b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
5586846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadLA8ToRGBA8(size_t width, size_t height, size_t depth,
5686846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                    const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
5786846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                    uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
58b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
5986846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadLA8ToBGRA8(size_t width, size_t height, size_t depth,
6086846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                    const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
6186846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                    uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
62632192dd8098d303fbf4d66f5d61c7363039a818Geoff Lang
6386846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadLA32FToRGBA32F(size_t width, size_t height, size_t depth,
6486846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                        const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
6586846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                        uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
66632192dd8098d303fbf4d66f5d61c7363039a818Geoff Lang
6786846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadLA16FToRGBA16F(size_t width, size_t height, size_t depth,
6886846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                        const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
6986846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                        uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
7036d0be90f401dfc7590cdf546540740a0018e77bshannonwoods@chromium.org
7186846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadRGB8ToBGRX8(size_t width, size_t height, size_t depth,
7286846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                     const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
7386846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                     uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
74b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
7586846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadRG8ToBGRX8(size_t width, size_t height, size_t depth,
7686846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                    const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
7786846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                    uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
78b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
7986846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadR8ToBGRX8(size_t width, size_t height, size_t depth,
8086846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                   const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
8186846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                   uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
82b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
8386846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadR5G6B5ToBGRA8(size_t width, size_t height, size_t depth,
8486846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                       const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
8586846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                       uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
86b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
8786846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadR5G6B5ToRGBA8(size_t width, size_t height, size_t depth,
8886846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                       const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
8986846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                       uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
90b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
9186846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadRGBA8ToBGRA8_SSE2(size_t width, size_t height, size_t depth,
9286846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                           const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
9386846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                           uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
94b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
9586846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadRGBA8ToBGRA8(size_t width, size_t height, size_t depth,
9686846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                      const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
9786846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                      uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
98b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
9986846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadRGBA4ToBGRA8(size_t width, size_t height, size_t depth,
10086846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                      const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
10186846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                      uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
102b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
10386846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadRGBA4ToRGBA8(size_t width, size_t height, size_t depth,
10486846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                      const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
10586846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                      uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
106b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
10786846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadBGRA4ToBGRA8(size_t width, size_t height, size_t depth,
10886846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                      const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
10986846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                      uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
110b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
11186846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadRGB5A1ToBGRA8(size_t width, size_t height, size_t depth,
11286846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                       const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
11386846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                       uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
114b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
11586846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadRGB5A1ToRGBA8(size_t width, size_t height, size_t depth,
11686846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                       const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
11786846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                       uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
118b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
11986846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadBGR5A1ToBGRA8(size_t width, size_t height, size_t depth,
12086846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                       const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
12186846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                       uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
122b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
12386846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadRGB10A2ToRGBA8(size_t width, size_t height, size_t depth,
12486846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                        const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
12586846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                        uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
126b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
12786846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadRGB16FToRGB9E5(size_t width, size_t height, size_t depth,
12886846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                          const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
12986846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                          uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
130b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
13186846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadRGB32FToRGB9E5(size_t width, size_t height, size_t depth,
13286846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                        const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
13386846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                        uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
134b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
13586846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadRGB16FToRG11B10F(size_t width, size_t height, size_t depth,
13686846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                          const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
13786846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                          uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
1385d4468e9e12f34e895a17c733f207ddb12fe4625shannonwoods@chromium.org
13986846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadRGB32FToRG11B10F(size_t width, size_t height, size_t depth,
14086846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                          const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
14186846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                          uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
1425d4468e9e12f34e895a17c733f207ddb12fe4625shannonwoods@chromium.org
14386846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadG8R24ToR24G8(size_t width, size_t height, size_t depth,
14486846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                      const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
14586846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                      uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
14692b9cd57673dad9c0ead2956bad0ded4e5ac49f8shannonwoods@chromium.org
14786846e242e61e16d19e7a07492c081ee29a59694Geoff Langtemplate <typename type, size_t componentCount>
14886846e242e61e16d19e7a07492c081ee29a59694Geoff Langinline void LoadToNative(size_t width, size_t height, size_t depth,
14986846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                         const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
15086846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                         uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
15186846e242e61e16d19e7a07492c081ee29a59694Geoff Lang
15286846e242e61e16d19e7a07492c081ee29a59694Geoff Langtemplate <typename type, uint32_t fourthComponentBits>
15386846e242e61e16d19e7a07492c081ee29a59694Geoff Langinline void LoadToNative3To4(size_t width, size_t height, size_t depth,
15486846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                             const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
15586846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                             uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
15692b9cd57673dad9c0ead2956bad0ded4e5ac49f8shannonwoods@chromium.org
15786846e242e61e16d19e7a07492c081ee29a59694Geoff Langtemplate <size_t componentCount>
15886846e242e61e16d19e7a07492c081ee29a59694Geoff Langinline void Load32FTo16F(size_t width, size_t height, size_t depth,
15986846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                         const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
16086846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                         uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
161a43d829fabc8a251d6695922966ad25320e4c99fshannonwoods@chromium.org
16286846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadRGB32FToRGBA16F(size_t width, size_t height, size_t depth,
16386846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                         const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
16486846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                         uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
165a43d829fabc8a251d6695922966ad25320e4c99fshannonwoods@chromium.org
16686846e242e61e16d19e7a07492c081ee29a59694Geoff Langtemplate <size_t blockWidth, size_t blockHeight, size_t blockSize>
16786846e242e61e16d19e7a07492c081ee29a59694Geoff Langinline void LoadCompressedToNative(size_t width, size_t height, size_t depth,
16886846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                                   const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
16986846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                                   uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
1704133f5c2f10ab5d42a0ca8cf81e0b10fdaecea74Geoff Lang
17186846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadR32ToR16(size_t width, size_t height, size_t depth,
17286846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                  const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
17386846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                  uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
1748d46e91406929e3726b0f905b6ca861fd7938a13shannonwoods@chromium.org
17586846e242e61e16d19e7a07492c081ee29a59694Geoff Langtemplate <typename type, uint32_t firstBits, uint32_t secondBits, uint32_t thirdBits, uint32_t fourthBits>
17686846e242e61e16d19e7a07492c081ee29a59694Geoff Langinline void Initialize4ComponentData(size_t width, size_t height, size_t depth,
17786846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                                     uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
178a32a2ba4da2e0f12ab277fc06830e84d70e0a37eshannonwoods@chromium.org
17986846e242e61e16d19e7a07492c081ee29a59694Geoff Langvoid LoadR32ToR24G8(size_t width, size_t height, size_t depth,
18086846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                    const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
18186846e242e61e16d19e7a07492c081ee29a59694Geoff Lang                    uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch);
182de7e6a24c958f03ea81f4ca548d52ceb02fbe6dcshannonwoods@chromium.org
18386846e242e61e16d19e7a07492c081ee29a59694Geoff Langtemplate <typename T>
18486846e242e61e16d19e7a07492c081ee29a59694Geoff Langinline T *OffsetDataPointer(uint8_t *data, size_t y, size_t z, size_t rowPitch, size_t depthPitch);
185b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
18686846e242e61e16d19e7a07492c081ee29a59694Geoff Langtemplate <typename T>
18786846e242e61e16d19e7a07492c081ee29a59694Geoff Langinline const T *OffsetDataPointer(const uint8_t *data, size_t y, size_t z, size_t rowPitch, size_t depthPitch);
1888746546078623e08c386ec2a2e3a1b77a3b327b6Geoff Lang
1890c99b1b0a42afd3b5fb578468895b166acd5bb6eGeoff Lang}
1900c99b1b0a42afd3b5fb578468895b166acd5bb6eGeoff Lang
19186846e242e61e16d19e7a07492c081ee29a59694Geoff Lang#include "loadimage.inl"
192b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org
193b8490f3c368bd2407980ed7df7810b3d84b20b68shannonwoods@chromium.org#endif // LIBGLESV2_RENDERER_LOADIMAGE_H_
194