Texture.h revision a8c386f1c36e916c1df18d41a22104d655a89817
149457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian/*
249457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian * Copyright 2013 The Android Open Source Project
349457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian *
449457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian * Licensed under the Apache License, Version 2.0 (the "License");
549457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian * you may not use this file except in compliance with the License.
649457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian * You may obtain a copy of the License at
749457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian *
849457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian *      http://www.apache.org/licenses/LICENSE-2.0
949457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian *
1049457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian * Unless required by applicable law or agreed to in writing, software
1149457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian * distributed under the License is distributed on an "AS IS" BASIS,
1249457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1349457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian * See the License for the specific language governing permissions and
1449457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian * limitations under the License.
1549457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian */
1649457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
1749457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian#include <stdint.h>
18a8c386f1c36e916c1df18d41a22104d655a89817Mathias Agopian#include <ui/mat4.h>
1949457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
2049457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian#ifndef SF_RENDER_ENGINE_TEXTURE_H
2149457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian#define SF_RENDER_ENGINE_TEXTURE_H
2249457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
2349457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopiannamespace android {
2449457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
2549457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopianclass Texture {
2649457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    uint32_t mTextureName;
2749457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    uint32_t mTextureTarget;
2849457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    size_t mWidth;
2949457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    size_t mHeight;
3049457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    bool mFiltering;
31a8c386f1c36e916c1df18d41a22104d655a89817Mathias Agopian    mat4 mTextureMatrix;
3249457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
3349457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopianpublic:
3449457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    enum Target { TEXTURE_2D = 0x0DE1, TEXTURE_EXTERNAL = 0x8D65 };
3549457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
3649457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    Texture();
3749457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    Texture(Target textureTarget, uint32_t textureName);
3849457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    ~Texture();
3949457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
4049457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    void init(Target textureTarget, uint32_t textureName);
4149457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
4249457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    void setMatrix(float const* matrix);
4349457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    void setFiltering(bool enabled);
4449457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    void setDimensions(size_t width, size_t height);
4549457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
4649457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    uint32_t getTextureName() const;
4749457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    uint32_t getTextureTarget() const;
4849457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
49a8c386f1c36e916c1df18d41a22104d655a89817Mathias Agopian    const mat4& getMatrix() const;
5049457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    bool getFiltering() const;
5149457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    size_t getWidth() const;
5249457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    size_t getHeight() const;
5349457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian};
5449457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
5549457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian} /* namespace android */
5649457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian#endif /* SF_RENDER_ENGINE_TEXTURE_H */
57