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