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 <string.h>
1849457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
1949457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian#include "Texture.h"
2049457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
2149457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopiannamespace android {
2249457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
2349457ac092071a8f964f7f69156093657ccdc3d0Mathias AgopianTexture::Texture() :
2449457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    mTextureName(0), mTextureTarget(TEXTURE_2D),
2549457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    mWidth(0), mHeight(0), mFiltering(false) {
2649457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian}
2749457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
2849457ac092071a8f964f7f69156093657ccdc3d0Mathias AgopianTexture::Texture(Target textureTarget, uint32_t textureName) :
2949457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian            mTextureName(textureName), mTextureTarget(textureTarget),
3049457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian            mWidth(0), mHeight(0), mFiltering(false) {
3149457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian}
3249457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
3349457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopianvoid Texture::init(Target textureTarget, uint32_t textureName) {
3449457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    mTextureName = textureName;
3549457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    mTextureTarget = textureTarget;
3649457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian}
3749457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
3849457ac092071a8f964f7f69156093657ccdc3d0Mathias AgopianTexture::~Texture() {
3949457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian}
4049457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
4149457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
4249457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopianvoid Texture::setMatrix(float const* matrix) {
43a8c386f1c36e916c1df18d41a22104d655a89817Mathias Agopian    mTextureMatrix = mat4(matrix);
4449457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian}
4549457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
4649457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopianvoid Texture::setFiltering(bool enabled) {
4749457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    mFiltering = enabled;
4849457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian}
4949457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
5049457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopianvoid Texture::setDimensions(size_t width, size_t height) {
5149457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    mWidth = width;
5249457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    mHeight = height;
5349457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian}
5449457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
5549457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopianuint32_t Texture::getTextureName() const {
5649457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    return mTextureName;
5749457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian}
5849457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
5949457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopianuint32_t Texture::getTextureTarget() const {
6049457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    return mTextureTarget;
6149457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian}
6249457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
63a8c386f1c36e916c1df18d41a22104d655a89817Mathias Agopianconst mat4& Texture::getMatrix() const {
6449457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    return mTextureMatrix;
6549457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian}
6649457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
6749457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopianbool Texture::getFiltering() const {
6849457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    return mFiltering;
6949457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian}
7049457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
7149457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopiansize_t Texture::getWidth() const {
7249457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    return mWidth;
7349457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian}
7449457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
7549457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopiansize_t Texture::getHeight() const {
7649457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian    return mHeight;
7749457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian}
7849457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian
7949457ac092071a8f964f7f69156093657ccdc3d0Mathias Agopian} /* namespace android */
80