// // Copyright 2014 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // ImageIndex.cpp: Implementation for ImageIndex methods. #include "libGLESv2/ImageIndex.h" #include "libGLESv2/Texture.h" #include "common/utilities.h" namespace gl { ImageIndex::ImageIndex(const ImageIndex &other) : type(other.type), mipIndex(other.mipIndex), layerIndex(other.layerIndex) {} ImageIndex &ImageIndex::operator=(const ImageIndex &other) { type = other.type; mipIndex = other.mipIndex; layerIndex = other.layerIndex; return *this; } ImageIndex ImageIndex::Make2D(GLint mipIndex) { return ImageIndex(GL_TEXTURE_2D, mipIndex, ENTIRE_LEVEL); } ImageIndex ImageIndex::MakeCube(GLenum target, GLint mipIndex) { ASSERT(gl::IsCubemapTextureTarget(target)); return ImageIndex(target, mipIndex, TextureCubeMap::targetToLayerIndex(target)); } ImageIndex ImageIndex::Make2DArray(GLint mipIndex, GLint layerIndex) { return ImageIndex(GL_TEXTURE_2D_ARRAY, mipIndex, layerIndex); } ImageIndex ImageIndex::Make3D(GLint mipIndex, GLint layerIndex) { return ImageIndex(GL_TEXTURE_3D, mipIndex, layerIndex); } ImageIndex::ImageIndex(GLenum typeIn, GLint mipIndexIn, GLint layerIndexIn) : type(typeIn), mipIndex(mipIndexIn), layerIndex(layerIndexIn) {} }