big fix for reconstruct

note : bug may because of wrong filePath
pull/2/head
InkSoul 2023-06-07 00:45:10 +08:00
parent 0cb6a9f00b
commit cf65bf2670
1671 changed files with 291260 additions and 4824 deletions

View File

@ -31,7 +31,18 @@
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "clang_cl_x64_x64" ],
"inheritEnvironments": [ "clang_cl_x64_x64" ]
},
{
"name": "x64-Release",
"generator": "Ninja",
"configurationType": "RelWithDebInfo",
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "msvc_x64_x64" ],
"variables": []
}
]

View File

@ -1,327 +0,0 @@
/*
* Android Vulkan function pointer loader
*
* Copyright (C) 2016 by Sascha Willems - www.saschawillems.de
*
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
*/
#include "VulkanAndroid.h"
#if defined(__ANDROID__)
#include <android/log.h>
#include <dlfcn.h>
#include <android/native_window_jni.h>
android_app* androidApp;
PFN_vkCreateInstance vkCreateInstance;
PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr;
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr;
PFN_vkCreateDevice vkCreateDevice;
PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices;
PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties;
PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2;
PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties;
PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties;
PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties;
PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures;
PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2;
PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties;
PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties;
PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties;
PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties;
PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier;
PFN_vkCreateShaderModule vkCreateShaderModule;
PFN_vkCreateBuffer vkCreateBuffer;
PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements;
PFN_vkMapMemory vkMapMemory;
PFN_vkUnmapMemory vkUnmapMemory;
PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges;
PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges;
PFN_vkBindBufferMemory vkBindBufferMemory;
PFN_vkDestroyBuffer vkDestroyBuffer;
PFN_vkAllocateMemory vkAllocateMemory;
PFN_vkBindImageMemory vkBindImageMemory;
PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout;
PFN_vkCmdCopyBuffer vkCmdCopyBuffer;
PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage;
PFN_vkCmdCopyImage vkCmdCopyImage;
PFN_vkCmdBlitImage vkCmdBlitImage;
PFN_vkCmdClearAttachments vkCmdClearAttachments;
PFN_vkCreateSampler vkCreateSampler;
PFN_vkDestroySampler vkDestroySampler;
PFN_vkDestroyImage vkDestroyImage;
PFN_vkFreeMemory vkFreeMemory;
PFN_vkCreateRenderPass vkCreateRenderPass;
PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass;
PFN_vkCmdEndRenderPass vkCmdEndRenderPass;
PFN_vkCmdNextSubpass vkCmdNextSubpass;
PFN_vkCmdExecuteCommands vkCmdExecuteCommands;
PFN_vkCmdClearColorImage vkCmdClearColorImage;
PFN_vkCreateImage vkCreateImage;
PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements;
PFN_vkCreateImageView vkCreateImageView;
PFN_vkDestroyImageView vkDestroyImageView;
PFN_vkCreateSemaphore vkCreateSemaphore;
PFN_vkDestroySemaphore vkDestroySemaphore;
PFN_vkCreateFence vkCreateFence;
PFN_vkDestroyFence vkDestroyFence;
PFN_vkWaitForFences vkWaitForFences;
PFN_vkResetFences vkResetFences;
PFN_vkResetDescriptorPool vkResetDescriptorPool;
PFN_vkCreateCommandPool vkCreateCommandPool;
PFN_vkDestroyCommandPool vkDestroyCommandPool;
PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers;
PFN_vkBeginCommandBuffer vkBeginCommandBuffer;
PFN_vkEndCommandBuffer vkEndCommandBuffer;
PFN_vkGetDeviceQueue vkGetDeviceQueue;
PFN_vkQueueSubmit vkQueueSubmit;
PFN_vkQueueWaitIdle vkQueueWaitIdle;
PFN_vkDeviceWaitIdle vkDeviceWaitIdle;
PFN_vkCreateFramebuffer vkCreateFramebuffer;
PFN_vkCreatePipelineCache vkCreatePipelineCache;
PFN_vkCreatePipelineLayout vkCreatePipelineLayout;
PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines;
PFN_vkCreateComputePipelines vkCreateComputePipelines;
PFN_vkCreateDescriptorPool vkCreateDescriptorPool;
PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout;
PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets;
PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets;
PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets;
PFN_vkCmdBindPipeline vkCmdBindPipeline;
PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers;
PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer;
PFN_vkCmdSetViewport vkCmdSetViewport;
PFN_vkCmdSetScissor vkCmdSetScissor;
PFN_vkCmdSetLineWidth vkCmdSetLineWidth;
PFN_vkCmdSetDepthBias vkCmdSetDepthBias;
PFN_vkCmdPushConstants vkCmdPushConstants;
PFN_vkCmdDrawIndexed vkCmdDrawIndexed;
PFN_vkCmdDraw vkCmdDraw;
PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect;
PFN_vkCmdDrawIndirect vkCmdDrawIndirect;
PFN_vkCmdDispatch vkCmdDispatch;
PFN_vkDestroyPipeline vkDestroyPipeline;
PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout;
PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout;
PFN_vkDestroyDevice vkDestroyDevice;
PFN_vkDestroyInstance vkDestroyInstance;
PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool;
PFN_vkFreeCommandBuffers vkFreeCommandBuffers;
PFN_vkDestroyRenderPass vkDestroyRenderPass;
PFN_vkDestroyFramebuffer vkDestroyFramebuffer;
PFN_vkDestroyShaderModule vkDestroyShaderModule;
PFN_vkDestroyPipelineCache vkDestroyPipelineCache;
PFN_vkCreateQueryPool vkCreateQueryPool;
PFN_vkDestroyQueryPool vkDestroyQueryPool;
PFN_vkGetQueryPoolResults vkGetQueryPoolResults;
PFN_vkCmdBeginQuery vkCmdBeginQuery;
PFN_vkCmdEndQuery vkCmdEndQuery;
PFN_vkCmdResetQueryPool vkCmdResetQueryPool;
PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults;
PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR;
PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR;
PFN_vkCmdFillBuffer vkCmdFillBuffer;
int32_t vks::android::screenDensity;
void *libVulkan;
namespace vks
{
namespace android
{
// Dynamically load Vulkan library and base function pointers
bool loadVulkanLibrary()
{
__android_log_print(ANDROID_LOG_INFO, "vulkanandroid", "Loading libvulkan.so...\n");
// Load vulkan library
libVulkan = dlopen("libvulkan.so", RTLD_NOW | RTLD_LOCAL);
if (!libVulkan)
{
__android_log_print(ANDROID_LOG_INFO, "vulkanandroid", "Could not load vulkan library : %s!\n", dlerror());
return false;
}
// Load base function pointers
vkEnumerateInstanceExtensionProperties = reinterpret_cast<PFN_vkEnumerateInstanceExtensionProperties>(dlsym(libVulkan, "vkEnumerateInstanceExtensionProperties"));
vkEnumerateInstanceLayerProperties = reinterpret_cast<PFN_vkEnumerateInstanceLayerProperties>(dlsym(libVulkan, "vkEnumerateInstanceLayerProperties"));
vkCreateInstance = reinterpret_cast<PFN_vkCreateInstance>(dlsym(libVulkan, "vkCreateInstance"));
vkGetInstanceProcAddr = reinterpret_cast<PFN_vkGetInstanceProcAddr>(dlsym(libVulkan, "vkGetInstanceProcAddr"));
vkGetDeviceProcAddr = reinterpret_cast<PFN_vkGetDeviceProcAddr>(dlsym(libVulkan, "vkGetDeviceProcAddr"));
return true;
}
// Load instance based Vulkan function pointers
void loadVulkanFunctions(VkInstance instance)
{
__android_log_print(ANDROID_LOG_INFO, "vulkanandroid", "Loading instance based function pointers...\n");
vkEnumeratePhysicalDevices = reinterpret_cast<PFN_vkEnumeratePhysicalDevices>(vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDevices"));
vkGetPhysicalDeviceProperties = reinterpret_cast<PFN_vkGetPhysicalDeviceProperties>(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties"));
vkGetPhysicalDeviceProperties2 = reinterpret_cast<PFN_vkGetPhysicalDeviceProperties2>(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties2"));
vkEnumerateDeviceLayerProperties = reinterpret_cast<PFN_vkEnumerateDeviceLayerProperties>(vkGetInstanceProcAddr(instance, "vkEnumerateDeviceLayerProperties"));
vkEnumerateDeviceExtensionProperties = reinterpret_cast<PFN_vkEnumerateDeviceExtensionProperties>(vkGetInstanceProcAddr(instance, "vkEnumerateDeviceExtensionProperties"));
vkGetPhysicalDeviceQueueFamilyProperties = reinterpret_cast<PFN_vkGetPhysicalDeviceQueueFamilyProperties>(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceQueueFamilyProperties"));
vkGetPhysicalDeviceFeatures = reinterpret_cast<PFN_vkGetPhysicalDeviceFeatures>(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFeatures"));
vkGetPhysicalDeviceFeatures2 = reinterpret_cast<PFN_vkGetPhysicalDeviceFeatures2>(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFeatures2"));
vkCreateDevice = reinterpret_cast<PFN_vkCreateDevice>(vkGetInstanceProcAddr(instance, "vkCreateDevice"));
vkGetPhysicalDeviceFormatProperties = reinterpret_cast<PFN_vkGetPhysicalDeviceFormatProperties>(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFormatProperties"));
vkGetPhysicalDeviceMemoryProperties = reinterpret_cast<PFN_vkGetPhysicalDeviceMemoryProperties>(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMemoryProperties"));
vkCmdPipelineBarrier = reinterpret_cast<PFN_vkCmdPipelineBarrier>(vkGetInstanceProcAddr(instance, "vkCmdPipelineBarrier"));
vkCreateShaderModule = reinterpret_cast<PFN_vkCreateShaderModule>(vkGetInstanceProcAddr(instance, "vkCreateShaderModule"));
vkCreateBuffer = reinterpret_cast<PFN_vkCreateBuffer>(vkGetInstanceProcAddr(instance, "vkCreateBuffer"));
vkGetBufferMemoryRequirements = reinterpret_cast<PFN_vkGetBufferMemoryRequirements>(vkGetInstanceProcAddr(instance, "vkGetBufferMemoryRequirements"));
vkMapMemory = reinterpret_cast<PFN_vkMapMemory>(vkGetInstanceProcAddr(instance, "vkMapMemory"));
vkUnmapMemory = reinterpret_cast<PFN_vkUnmapMemory>(vkGetInstanceProcAddr(instance, "vkUnmapMemory"));
vkFlushMappedMemoryRanges = reinterpret_cast<PFN_vkFlushMappedMemoryRanges>(vkGetInstanceProcAddr(instance, "vkFlushMappedMemoryRanges"));
vkInvalidateMappedMemoryRanges = reinterpret_cast<PFN_vkInvalidateMappedMemoryRanges>(vkGetInstanceProcAddr(instance, "vkInvalidateMappedMemoryRanges"));
vkBindBufferMemory = reinterpret_cast<PFN_vkBindBufferMemory>(vkGetInstanceProcAddr(instance, "vkBindBufferMemory"));
vkDestroyBuffer = reinterpret_cast<PFN_vkDestroyBuffer>(vkGetInstanceProcAddr(instance, "vkDestroyBuffer"));
vkAllocateMemory = reinterpret_cast<PFN_vkAllocateMemory>(vkGetInstanceProcAddr(instance, "vkAllocateMemory"));
vkFreeMemory = reinterpret_cast<PFN_vkFreeMemory>(vkGetInstanceProcAddr(instance, "vkFreeMemory"));
vkCreateRenderPass = reinterpret_cast<PFN_vkCreateRenderPass>(vkGetInstanceProcAddr(instance, "vkCreateRenderPass"));
vkCmdBeginRenderPass = reinterpret_cast<PFN_vkCmdBeginRenderPass>(vkGetInstanceProcAddr(instance, "vkCmdBeginRenderPass"));
vkCmdEndRenderPass = reinterpret_cast<PFN_vkCmdEndRenderPass>(vkGetInstanceProcAddr(instance, "vkCmdEndRenderPass"));
vkCmdNextSubpass = reinterpret_cast<PFN_vkCmdNextSubpass>(vkGetInstanceProcAddr(instance, "vkCmdNextSubpass"));
vkCmdExecuteCommands = reinterpret_cast<PFN_vkCmdExecuteCommands>(vkGetInstanceProcAddr(instance, "vkCmdExecuteCommands"));
vkCmdClearColorImage = reinterpret_cast<PFN_vkCmdClearColorImage>(vkGetInstanceProcAddr(instance, "vkCmdClearColorImage"));
vkCreateImage = reinterpret_cast<PFN_vkCreateImage>(vkGetInstanceProcAddr(instance, "vkCreateImage"));
vkGetImageMemoryRequirements = reinterpret_cast<PFN_vkGetImageMemoryRequirements>(vkGetInstanceProcAddr(instance, "vkGetImageMemoryRequirements"));
vkCreateImageView = reinterpret_cast<PFN_vkCreateImageView>(vkGetInstanceProcAddr(instance, "vkCreateImageView"));
vkDestroyImageView = reinterpret_cast<PFN_vkDestroyImageView>(vkGetInstanceProcAddr(instance, "vkDestroyImageView"));
vkBindImageMemory = reinterpret_cast<PFN_vkBindImageMemory>(vkGetInstanceProcAddr(instance, "vkBindImageMemory"));
vkGetImageSubresourceLayout = reinterpret_cast<PFN_vkGetImageSubresourceLayout>(vkGetInstanceProcAddr(instance, "vkGetImageSubresourceLayout"));
vkCmdCopyImage = reinterpret_cast<PFN_vkCmdCopyImage>(vkGetInstanceProcAddr(instance, "vkCmdCopyImage"));
vkCmdBlitImage = reinterpret_cast<PFN_vkCmdBlitImage>(vkGetInstanceProcAddr(instance, "vkCmdBlitImage"));
vkDestroyImage = reinterpret_cast<PFN_vkDestroyImage>(vkGetInstanceProcAddr(instance, "vkDestroyImage"));
vkCmdClearAttachments = reinterpret_cast<PFN_vkCmdClearAttachments>(vkGetInstanceProcAddr(instance, "vkCmdClearAttachments"));
vkCmdCopyBuffer = reinterpret_cast<PFN_vkCmdCopyBuffer>(vkGetInstanceProcAddr(instance, "vkCmdCopyBuffer"));
vkCmdCopyBufferToImage = reinterpret_cast<PFN_vkCmdCopyBufferToImage>(vkGetInstanceProcAddr(instance, "vkCmdCopyBufferToImage"));
vkCreateSampler = reinterpret_cast<PFN_vkCreateSampler>(vkGetInstanceProcAddr(instance, "vkCreateSampler"));
vkDestroySampler = reinterpret_cast<PFN_vkDestroySampler>(vkGetInstanceProcAddr(instance, "vkDestroySampler"));;
vkCreateSemaphore = reinterpret_cast<PFN_vkCreateSemaphore>(vkGetInstanceProcAddr(instance, "vkCreateSemaphore"));
vkDestroySemaphore = reinterpret_cast<PFN_vkDestroySemaphore>(vkGetInstanceProcAddr(instance, "vkDestroySemaphore"));
vkCreateFence = reinterpret_cast<PFN_vkCreateFence>(vkGetInstanceProcAddr(instance, "vkCreateFence"));
vkDestroyFence = reinterpret_cast<PFN_vkDestroyFence>(vkGetInstanceProcAddr(instance, "vkDestroyFence"));
vkWaitForFences = reinterpret_cast<PFN_vkWaitForFences>(vkGetInstanceProcAddr(instance, "vkWaitForFences"));
vkResetFences = reinterpret_cast<PFN_vkResetFences>(vkGetInstanceProcAddr(instance, "vkResetFences"));;
vkResetDescriptorPool = reinterpret_cast<PFN_vkResetDescriptorPool>(vkGetInstanceProcAddr(instance, "vkResetDescriptorPool"));
vkCreateCommandPool = reinterpret_cast<PFN_vkCreateCommandPool>(vkGetInstanceProcAddr(instance, "vkCreateCommandPool"));
vkDestroyCommandPool = reinterpret_cast<PFN_vkDestroyCommandPool>(vkGetInstanceProcAddr(instance, "vkDestroyCommandPool"));;
vkAllocateCommandBuffers = reinterpret_cast<PFN_vkAllocateCommandBuffers>(vkGetInstanceProcAddr(instance, "vkAllocateCommandBuffers"));
vkBeginCommandBuffer = reinterpret_cast<PFN_vkBeginCommandBuffer>(vkGetInstanceProcAddr(instance, "vkBeginCommandBuffer"));
vkEndCommandBuffer = reinterpret_cast<PFN_vkEndCommandBuffer>(vkGetInstanceProcAddr(instance, "vkEndCommandBuffer"));
vkGetDeviceQueue = reinterpret_cast<PFN_vkGetDeviceQueue>(vkGetInstanceProcAddr(instance, "vkGetDeviceQueue"));
vkQueueSubmit = reinterpret_cast<PFN_vkQueueSubmit>(vkGetInstanceProcAddr(instance, "vkQueueSubmit"));
vkQueueWaitIdle = reinterpret_cast<PFN_vkQueueWaitIdle>(vkGetInstanceProcAddr(instance, "vkQueueWaitIdle"));
vkDeviceWaitIdle = reinterpret_cast<PFN_vkDeviceWaitIdle>(vkGetInstanceProcAddr(instance, "vkDeviceWaitIdle"));
vkCreateFramebuffer = reinterpret_cast<PFN_vkCreateFramebuffer>(vkGetInstanceProcAddr(instance, "vkCreateFramebuffer"));
vkCreatePipelineCache = reinterpret_cast<PFN_vkCreatePipelineCache>(vkGetInstanceProcAddr(instance, "vkCreatePipelineCache"));
vkCreatePipelineLayout = reinterpret_cast<PFN_vkCreatePipelineLayout>(vkGetInstanceProcAddr(instance, "vkCreatePipelineLayout"));
vkCreateGraphicsPipelines = reinterpret_cast<PFN_vkCreateGraphicsPipelines>(vkGetInstanceProcAddr(instance, "vkCreateGraphicsPipelines"));
vkCreateComputePipelines = reinterpret_cast<PFN_vkCreateComputePipelines>(vkGetInstanceProcAddr(instance, "vkCreateComputePipelines"));
vkCreateDescriptorPool = reinterpret_cast<PFN_vkCreateDescriptorPool>(vkGetInstanceProcAddr(instance, "vkCreateDescriptorPool"));
vkCreateDescriptorSetLayout = reinterpret_cast<PFN_vkCreateDescriptorSetLayout>(vkGetInstanceProcAddr(instance, "vkCreateDescriptorSetLayout"));
vkAllocateDescriptorSets = reinterpret_cast<PFN_vkAllocateDescriptorSets>(vkGetInstanceProcAddr(instance, "vkAllocateDescriptorSets"));
vkUpdateDescriptorSets = reinterpret_cast<PFN_vkUpdateDescriptorSets>(vkGetInstanceProcAddr(instance, "vkUpdateDescriptorSets"));
vkCmdBindDescriptorSets = reinterpret_cast<PFN_vkCmdBindDescriptorSets>(vkGetInstanceProcAddr(instance, "vkCmdBindDescriptorSets"));
vkCmdBindPipeline = reinterpret_cast<PFN_vkCmdBindPipeline>(vkGetInstanceProcAddr(instance, "vkCmdBindPipeline"));
vkCmdBindVertexBuffers = reinterpret_cast<PFN_vkCmdBindVertexBuffers>(vkGetInstanceProcAddr(instance, "vkCmdBindVertexBuffers"));
vkCmdBindIndexBuffer = reinterpret_cast<PFN_vkCmdBindIndexBuffer>(vkGetInstanceProcAddr(instance, "vkCmdBindIndexBuffer"));
vkCmdSetViewport = reinterpret_cast<PFN_vkCmdSetViewport>(vkGetInstanceProcAddr(instance, "vkCmdSetViewport"));
vkCmdSetScissor = reinterpret_cast<PFN_vkCmdSetScissor>(vkGetInstanceProcAddr(instance, "vkCmdSetScissor"));
vkCmdSetLineWidth = reinterpret_cast<PFN_vkCmdSetLineWidth>(vkGetInstanceProcAddr(instance, "vkCmdSetLineWidth"));
vkCmdSetDepthBias = reinterpret_cast<PFN_vkCmdSetDepthBias>(vkGetInstanceProcAddr(instance, "vkCmdSetDepthBias"));
vkCmdPushConstants = reinterpret_cast<PFN_vkCmdPushConstants>(vkGetInstanceProcAddr(instance, "vkCmdPushConstants"));;
vkCmdDrawIndexed = reinterpret_cast<PFN_vkCmdDrawIndexed>(vkGetInstanceProcAddr(instance, "vkCmdDrawIndexed"));
vkCmdDraw = reinterpret_cast<PFN_vkCmdDraw>(vkGetInstanceProcAddr(instance, "vkCmdDraw"));
vkCmdDrawIndexedIndirect = reinterpret_cast<PFN_vkCmdDrawIndexedIndirect>(vkGetInstanceProcAddr(instance, "vkCmdDrawIndexedIndirect"));
vkCmdDrawIndirect = reinterpret_cast<PFN_vkCmdDrawIndirect>(vkGetInstanceProcAddr(instance, "vkCmdDrawIndirect"));
vkCmdDispatch = reinterpret_cast<PFN_vkCmdDispatch>(vkGetInstanceProcAddr(instance, "vkCmdDispatch"));
vkDestroyPipeline = reinterpret_cast<PFN_vkDestroyPipeline>(vkGetInstanceProcAddr(instance, "vkDestroyPipeline"));
vkDestroyPipelineLayout = reinterpret_cast<PFN_vkDestroyPipelineLayout>(vkGetInstanceProcAddr(instance, "vkDestroyPipelineLayout"));;
vkDestroyDescriptorSetLayout = reinterpret_cast<PFN_vkDestroyDescriptorSetLayout>(vkGetInstanceProcAddr(instance, "vkDestroyDescriptorSetLayout"));
vkDestroyDevice = reinterpret_cast<PFN_vkDestroyDevice>(vkGetInstanceProcAddr(instance, "vkDestroyDevice"));
vkDestroyInstance = reinterpret_cast<PFN_vkDestroyInstance>(vkGetInstanceProcAddr(instance, "vkDestroyInstance"));
vkDestroyDescriptorPool = reinterpret_cast<PFN_vkDestroyDescriptorPool>(vkGetInstanceProcAddr(instance, "vkDestroyDescriptorPool"));
vkFreeCommandBuffers = reinterpret_cast<PFN_vkFreeCommandBuffers>(vkGetInstanceProcAddr(instance, "vkFreeCommandBuffers"));
vkDestroyRenderPass = reinterpret_cast<PFN_vkDestroyRenderPass>(vkGetInstanceProcAddr(instance, "vkDestroyRenderPass"));
vkDestroyFramebuffer = reinterpret_cast<PFN_vkDestroyFramebuffer>(vkGetInstanceProcAddr(instance, "vkDestroyFramebuffer"));
vkDestroyShaderModule = reinterpret_cast<PFN_vkDestroyShaderModule>(vkGetInstanceProcAddr(instance, "vkDestroyShaderModule"));
vkDestroyPipelineCache = reinterpret_cast<PFN_vkDestroyPipelineCache>(vkGetInstanceProcAddr(instance, "vkDestroyPipelineCache"));
vkCreateQueryPool = reinterpret_cast<PFN_vkCreateQueryPool>(vkGetInstanceProcAddr(instance, "vkCreateQueryPool"));
vkDestroyQueryPool = reinterpret_cast<PFN_vkDestroyQueryPool>(vkGetInstanceProcAddr(instance, "vkDestroyQueryPool"));
vkGetQueryPoolResults = reinterpret_cast<PFN_vkGetQueryPoolResults>(vkGetInstanceProcAddr(instance, "vkGetQueryPoolResults"));
vkCmdBeginQuery = reinterpret_cast<PFN_vkCmdBeginQuery>(vkGetInstanceProcAddr(instance, "vkCmdBeginQuery"));
vkCmdEndQuery = reinterpret_cast<PFN_vkCmdEndQuery>(vkGetInstanceProcAddr(instance, "vkCmdEndQuery"));
vkCmdResetQueryPool = reinterpret_cast<PFN_vkCmdResetQueryPool>(vkGetInstanceProcAddr(instance, "vkCmdResetQueryPool"));
vkCmdCopyQueryPoolResults = reinterpret_cast<PFN_vkCmdCopyQueryPoolResults>(vkGetInstanceProcAddr(instance, "vkCmdCopyQueryPoolResults"));
vkCreateAndroidSurfaceKHR = reinterpret_cast<PFN_vkCreateAndroidSurfaceKHR>(vkGetInstanceProcAddr(instance, "vkCreateAndroidSurfaceKHR"));
vkDestroySurfaceKHR = reinterpret_cast<PFN_vkDestroySurfaceKHR>(vkGetInstanceProcAddr(instance, "vkDestroySurfaceKHR"));
vkCmdFillBuffer = reinterpret_cast<PFN_vkCmdFillBuffer>(vkGetInstanceProcAddr(instance, "vkCmdFillBuffer"));
}
void freeVulkanLibrary()
{
dlclose(libVulkan);
}
void getDeviceConfig()
{
// Screen density
AConfiguration* config = AConfiguration_new();
AConfiguration_fromAssetManager(config, androidApp->activity->assetManager);
vks::android::screenDensity = AConfiguration_getDensity(config);
AConfiguration_delete(config);
}
// Displays a native alert dialog using JNI
void showAlert(const char* message) {
JNIEnv* jni;
androidApp->activity->vm->AttachCurrentThread(&jni, NULL);
jstring jmessage = jni->NewStringUTF(message);
jclass clazz = jni->GetObjectClass(androidApp->activity->clazz);
// Signature has to match java implementation (arguments)
jmethodID methodID = jni->GetMethodID(clazz, "showAlert", "(Ljava/lang/String;)V");
jni->CallVoidMethod(androidApp->activity->clazz, methodID, jmessage);
jni->DeleteLocalRef(jmessage);
androidApp->activity->vm->DetachCurrentThread();
return;
}
}
}
#endif

View File

@ -1,188 +0,0 @@
/*
* Android Vulkan function pointer prototypes
*
* Copyright (C) 2016 by Sascha Willems - www.saschawillems.de
*
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
*/
#pragma once
#ifndef VULKANANDROID_H
#define VULKANANDROID_H
// Vulkan needs to be loaded dynamically on android
#pragma once
#ifndef VULKANANDROID_HPP
#define VULKANANDROID_HPP
#include "vulkan/vulkan.h"
#if defined(__ANDROID__)
#include <android/log.h>
#include <android_native_app_glue.h>
#include <android/configuration.h>
#include <memory>
#include <string>
// Missing from the NDK
namespace std
{
template<typename T, typename... Args>
std::unique_ptr<T> make_unique(Args&&... args)
{
return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
}
}
// Global reference to android application object
extern android_app* androidApp;
#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "vulkanExample", __VA_ARGS__))
#define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, "vulkanExample", __VA_ARGS__))
#define LOGD(...) ((void)__android_log_print(ANDROID_LOG_DEBUG, "vulkanExample", __VA_ARGS__))
#define LOGE(...) ((void)__android_log_print(ANDROID_LOG_ERROR, "vulkanExample", __VA_ARGS__))
// Function pointer prototypes
// Not complete, just the functions used in the caps viewer!
extern PFN_vkCreateInstance vkCreateInstance;
extern PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr;
extern PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr;
extern PFN_vkCreateDevice vkCreateDevice;
extern PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices;
extern PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties;
extern PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2;
extern PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties;
extern PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties;
extern PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties;
extern PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures;
extern PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2;
extern PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties;
extern PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties;
extern PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties;
extern PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties;
extern PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier;
extern PFN_vkCreateShaderModule vkCreateShaderModule;
extern PFN_vkCreateBuffer vkCreateBuffer;
extern PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements;
extern PFN_vkMapMemory vkMapMemory;
extern PFN_vkUnmapMemory vkUnmapMemory;
extern PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges;
extern PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges;
extern PFN_vkBindBufferMemory vkBindBufferMemory;
extern PFN_vkDestroyBuffer vkDestroyBuffer;
extern PFN_vkAllocateMemory vkAllocateMemory;
extern PFN_vkBindImageMemory vkBindImageMemory;
extern PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout;
extern PFN_vkCmdCopyBuffer vkCmdCopyBuffer;
extern PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage;
extern PFN_vkCmdCopyImage vkCmdCopyImage;
extern PFN_vkCmdBlitImage vkCmdBlitImage;
extern PFN_vkCmdClearAttachments vkCmdClearAttachments;
extern PFN_vkCreateSampler vkCreateSampler;
extern PFN_vkDestroySampler vkDestroySampler;
extern PFN_vkDestroyImage vkDestroyImage;
extern PFN_vkFreeMemory vkFreeMemory;
extern PFN_vkCreateRenderPass vkCreateRenderPass;
extern PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass;
extern PFN_vkCmdEndRenderPass vkCmdEndRenderPass;
extern PFN_vkCmdNextSubpass vkCmdNextSubpass;
extern PFN_vkCmdExecuteCommands vkCmdExecuteCommands;
extern PFN_vkCmdClearColorImage vkCmdClearColorImage;
extern PFN_vkCreateImage vkCreateImage;
extern PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements;
extern PFN_vkCreateImageView vkCreateImageView;
extern PFN_vkDestroyImageView vkDestroyImageView;
extern PFN_vkCreateSemaphore vkCreateSemaphore;
extern PFN_vkDestroySemaphore vkDestroySemaphore;
extern PFN_vkCreateFence vkCreateFence;
extern PFN_vkDestroyFence vkDestroyFence;
extern PFN_vkWaitForFences vkWaitForFences;
extern PFN_vkResetFences vkResetFences;
extern PFN_vkResetDescriptorPool vkResetDescriptorPool;
extern PFN_vkCreateCommandPool vkCreateCommandPool;
extern PFN_vkDestroyCommandPool vkDestroyCommandPool;
extern PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers;
extern PFN_vkBeginCommandBuffer vkBeginCommandBuffer;
extern PFN_vkEndCommandBuffer vkEndCommandBuffer;
extern PFN_vkGetDeviceQueue vkGetDeviceQueue;
extern PFN_vkQueueSubmit vkQueueSubmit;
extern PFN_vkQueueWaitIdle vkQueueWaitIdle;
extern PFN_vkDeviceWaitIdle vkDeviceWaitIdle;
extern PFN_vkCreateFramebuffer vkCreateFramebuffer;
extern PFN_vkCreatePipelineCache vkCreatePipelineCache;
extern PFN_vkCreatePipelineLayout vkCreatePipelineLayout;
extern PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines;
extern PFN_vkCreateComputePipelines vkCreateComputePipelines;
extern PFN_vkCreateDescriptorPool vkCreateDescriptorPool;
extern PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout;
extern PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets;
extern PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets;
extern PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets;
extern PFN_vkCmdBindPipeline vkCmdBindPipeline;
extern PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers;
extern PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer;
extern PFN_vkCmdSetViewport vkCmdSetViewport;
extern PFN_vkCmdSetScissor vkCmdSetScissor;
extern PFN_vkCmdSetLineWidth vkCmdSetLineWidth;
extern PFN_vkCmdSetDepthBias vkCmdSetDepthBias;
extern PFN_vkCmdPushConstants vkCmdPushConstants;
extern PFN_vkCmdDrawIndexed vkCmdDrawIndexed;
extern PFN_vkCmdDraw vkCmdDraw;
extern PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect;
extern PFN_vkCmdDrawIndirect vkCmdDrawIndirect;
extern PFN_vkCmdDispatch vkCmdDispatch;
extern PFN_vkDestroyPipeline vkDestroyPipeline;
extern PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout;
extern PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout;
extern PFN_vkDestroyDevice vkDestroyDevice;
extern PFN_vkDestroyInstance vkDestroyInstance;
extern PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool;
extern PFN_vkFreeCommandBuffers vkFreeCommandBuffers;
extern PFN_vkDestroyRenderPass vkDestroyRenderPass;
extern PFN_vkDestroyFramebuffer vkDestroyFramebuffer;
extern PFN_vkDestroyShaderModule vkDestroyShaderModule;
extern PFN_vkDestroyPipelineCache vkDestroyPipelineCache;
extern PFN_vkCreateQueryPool vkCreateQueryPool;
extern PFN_vkDestroyQueryPool vkDestroyQueryPool;
extern PFN_vkGetQueryPoolResults vkGetQueryPoolResults;
extern PFN_vkCmdBeginQuery vkCmdBeginQuery;
extern PFN_vkCmdEndQuery vkCmdEndQuery;
extern PFN_vkCmdResetQueryPool vkCmdResetQueryPool;
extern PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults;
extern PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR;
extern PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR;
extern PFN_vkCmdFillBuffer vkCmdFillBuffer;
namespace vks
{
namespace android
{
/* @brief Touch control thresholds from Android NDK samples */
const int32_t DOUBLE_TAP_TIMEOUT = 300 * 1000000;
const int32_t TAP_TIMEOUT = 180 * 1000000;
const int32_t DOUBLE_TAP_SLOP = 100;
const int32_t TAP_SLOP = 8;
/** @brief Density of the device screen (in DPI) */
extern int32_t screenDensity;
bool loadVulkanLibrary();
void loadVulkanFunctions(VkInstance instance);
void freeVulkanLibrary();
void getDeviceConfig();
void showAlert(const char* message);
}
}
#endif
#endif // VULKANANDROID_HPP
#endif // VULKANANDROID_H

View File

@ -1,261 +0,0 @@
/*
* Vulkan examples debug wrapper
*
* Copyright (C) by Sascha Willems - www.saschawillems.de
*
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
*/
#include "VulkanDebug.h"
#include <iostream>
namespace vks
{
namespace debug
{
PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT;
PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT;
VkDebugUtilsMessengerEXT debugUtilsMessenger;
VKAPI_ATTR VkBool32 VKAPI_CALL debugUtilsMessengerCallback(
VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
VkDebugUtilsMessageTypeFlagsEXT messageType,
const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
void* pUserData)
{
// Select prefix depending on flags passed to the callback
std::string prefix("");
if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT) {
prefix = "VERBOSE: ";
}
else if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT) {
prefix = "INFO: ";
}
else if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT) {
prefix = "WARNING: ";
}
else if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT) {
prefix = "ERROR: ";
}
// Display message to default output (console/logcat)
std::stringstream debugMessage;
debugMessage << prefix << "[" << pCallbackData->messageIdNumber << "][" << pCallbackData->pMessageIdName << "] : " << pCallbackData->pMessage;
#if defined(__ANDROID__)
if (messageSeverity >= VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT) {
LOGE("%s", debugMessage.str().c_str());
} else {
LOGD("%s", debugMessage.str().c_str());
}
#else
if (messageSeverity >= VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT) {
std::cerr << debugMessage.str() << "\n";
} else {
std::cout << debugMessage.str() << "\n";
}
fflush(stdout);
#endif
// The return value of this callback controls whether the Vulkan call that caused the validation message will be aborted or not
// We return VK_FALSE as we DON'T want Vulkan calls that cause a validation message to abort
// If you instead want to have calls abort, pass in VK_TRUE and the function will return VK_ERROR_VALIDATION_FAILED_EXT
return VK_FALSE;
}
void setupDebugging(VkInstance instance)
{
vkCreateDebugUtilsMessengerEXT = reinterpret_cast<PFN_vkCreateDebugUtilsMessengerEXT>(vkGetInstanceProcAddr(instance, "vkCreateDebugUtilsMessengerEXT"));
vkDestroyDebugUtilsMessengerEXT = reinterpret_cast<PFN_vkDestroyDebugUtilsMessengerEXT>(vkGetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT"));
VkDebugUtilsMessengerCreateInfoEXT debugUtilsMessengerCI{};
debugUtilsMessengerCI.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT;
debugUtilsMessengerCI.messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT;
debugUtilsMessengerCI.messageType = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT;
debugUtilsMessengerCI.pfnUserCallback = debugUtilsMessengerCallback;
VkResult result = vkCreateDebugUtilsMessengerEXT(instance, &debugUtilsMessengerCI, nullptr, &debugUtilsMessenger);
assert(result == VK_SUCCESS);
}
void freeDebugCallback(VkInstance instance)
{
if (debugUtilsMessenger != VK_NULL_HANDLE)
{
vkDestroyDebugUtilsMessengerEXT(instance, debugUtilsMessenger, nullptr);
}
}
}
namespace debugmarker
{
bool active = false;
PFN_vkDebugMarkerSetObjectTagEXT pfnDebugMarkerSetObjectTag = VK_NULL_HANDLE;
PFN_vkDebugMarkerSetObjectNameEXT pfnDebugMarkerSetObjectName = VK_NULL_HANDLE;
PFN_vkCmdDebugMarkerBeginEXT pfnCmdDebugMarkerBegin = VK_NULL_HANDLE;
PFN_vkCmdDebugMarkerEndEXT pfnCmdDebugMarkerEnd = VK_NULL_HANDLE;
PFN_vkCmdDebugMarkerInsertEXT pfnCmdDebugMarkerInsert = VK_NULL_HANDLE;
void setup(VkDevice device)
{
pfnDebugMarkerSetObjectTag = reinterpret_cast<PFN_vkDebugMarkerSetObjectTagEXT>(vkGetDeviceProcAddr(device, "vkDebugMarkerSetObjectTagEXT"));
pfnDebugMarkerSetObjectName = reinterpret_cast<PFN_vkDebugMarkerSetObjectNameEXT>(vkGetDeviceProcAddr(device, "vkDebugMarkerSetObjectNameEXT"));
pfnCmdDebugMarkerBegin = reinterpret_cast<PFN_vkCmdDebugMarkerBeginEXT>(vkGetDeviceProcAddr(device, "vkCmdDebugMarkerBeginEXT"));
pfnCmdDebugMarkerEnd = reinterpret_cast<PFN_vkCmdDebugMarkerEndEXT>(vkGetDeviceProcAddr(device, "vkCmdDebugMarkerEndEXT"));
pfnCmdDebugMarkerInsert = reinterpret_cast<PFN_vkCmdDebugMarkerInsertEXT>(vkGetDeviceProcAddr(device, "vkCmdDebugMarkerInsertEXT"));
// Set flag if at least one function pointer is present
active = (pfnDebugMarkerSetObjectName != VK_NULL_HANDLE);
}
void setObjectName(VkDevice device, uint64_t object, VkDebugReportObjectTypeEXT objectType, const char *name)
{
// Check for valid function pointer (may not be present if not running in a debugging application)
if (pfnDebugMarkerSetObjectName)
{
VkDebugMarkerObjectNameInfoEXT nameInfo = {};
nameInfo.sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT;
nameInfo.objectType = objectType;
nameInfo.object = object;
nameInfo.pObjectName = name;
pfnDebugMarkerSetObjectName(device, &nameInfo);
}
}
void setObjectTag(VkDevice device, uint64_t object, VkDebugReportObjectTypeEXT objectType, uint64_t name, size_t tagSize, const void* tag)
{
// Check for valid function pointer (may not be present if not running in a debugging application)
if (pfnDebugMarkerSetObjectTag)
{
VkDebugMarkerObjectTagInfoEXT tagInfo = {};
tagInfo.sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT;
tagInfo.objectType = objectType;
tagInfo.object = object;
tagInfo.tagName = name;
tagInfo.tagSize = tagSize;
tagInfo.pTag = tag;
pfnDebugMarkerSetObjectTag(device, &tagInfo);
}
}
void beginRegion(VkCommandBuffer cmdbuffer, const char* pMarkerName, glm::vec4 color)
{
// Check for valid function pointer (may not be present if not running in a debugging application)
if (pfnCmdDebugMarkerBegin)
{
VkDebugMarkerMarkerInfoEXT markerInfo = {};
markerInfo.sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT;
memcpy(markerInfo.color, &color[0], sizeof(float) * 4);
markerInfo.pMarkerName = pMarkerName;
pfnCmdDebugMarkerBegin(cmdbuffer, &markerInfo);
}
}
void insert(VkCommandBuffer cmdbuffer, std::string markerName, glm::vec4 color)
{
// Check for valid function pointer (may not be present if not running in a debugging application)
if (pfnCmdDebugMarkerInsert)
{
VkDebugMarkerMarkerInfoEXT markerInfo = {};
markerInfo.sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT;
memcpy(markerInfo.color, &color[0], sizeof(float) * 4);
markerInfo.pMarkerName = markerName.c_str();
pfnCmdDebugMarkerInsert(cmdbuffer, &markerInfo);
}
}
void endRegion(VkCommandBuffer cmdBuffer)
{
// Check for valid function (may not be present if not running in a debugging application)
if (pfnCmdDebugMarkerEnd)
{
pfnCmdDebugMarkerEnd(cmdBuffer);
}
}
void setCommandBufferName(VkDevice device, VkCommandBuffer cmdBuffer, const char * name)
{
setObjectName(device, (uint64_t)cmdBuffer, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, name);
}
void setQueueName(VkDevice device, VkQueue queue, const char * name)
{
setObjectName(device, (uint64_t)queue, VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT, name);
}
void setImageName(VkDevice device, VkImage image, const char * name)
{
setObjectName(device, (uint64_t)image, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, name);
}
void setSamplerName(VkDevice device, VkSampler sampler, const char * name)
{
setObjectName(device, (uint64_t)sampler, VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT, name);
}
void setBufferName(VkDevice device, VkBuffer buffer, const char * name)
{
setObjectName(device, (uint64_t)buffer, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT, name);
}
void setDeviceMemoryName(VkDevice device, VkDeviceMemory memory, const char * name)
{
setObjectName(device, (uint64_t)memory, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, name);
}
void setShaderModuleName(VkDevice device, VkShaderModule shaderModule, const char * name)
{
setObjectName(device, (uint64_t)shaderModule, VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT, name);
}
void setPipelineName(VkDevice device, VkPipeline pipeline, const char * name)
{
setObjectName(device, (uint64_t)pipeline, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, name);
}
void setPipelineLayoutName(VkDevice device, VkPipelineLayout pipelineLayout, const char * name)
{
setObjectName(device, (uint64_t)pipelineLayout, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT, name);
}
void setRenderPassName(VkDevice device, VkRenderPass renderPass, const char * name)
{
setObjectName(device, (uint64_t)renderPass, VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT, name);
}
void setFramebufferName(VkDevice device, VkFramebuffer framebuffer, const char * name)
{
setObjectName(device, (uint64_t)framebuffer, VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT, name);
}
void setDescriptorSetLayoutName(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const char * name)
{
setObjectName(device, (uint64_t)descriptorSetLayout, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT, name);
}
void setDescriptorSetName(VkDevice device, VkDescriptorSet descriptorSet, const char * name)
{
setObjectName(device, (uint64_t)descriptorSet, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT, name);
}
void setSemaphoreName(VkDevice device, VkSemaphore semaphore, const char * name)
{
setObjectName(device, (uint64_t)semaphore, VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT, name);
}
void setFenceName(VkDevice device, VkFence fence, const char * name)
{
setObjectName(device, (uint64_t)fence, VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT, name);
}
void setEventName(VkDevice device, VkEvent _event, const char * name)
{
setObjectName(device, (uint64_t)_event, VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT, name);
}
};
}

View File

@ -1,94 +0,0 @@
#pragma once
#include "vulkan/vulkan.h"
#include <math.h>
#include <stdlib.h>
#include <string>
#include <cstring>
#include <fstream>
#include <assert.h>
#include <stdio.h>
#include <vector>
#include <sstream>
#ifdef _WIN32
#include <windows.h>
#include <fcntl.h>
#include <io.h>
#endif
#ifdef __ANDROID__
#include "VulkanAndroid.h"
#endif
#define GLM_FORCE_RADIANS
#define GLM_FORCE_DEPTH_ZERO_TO_ONE
#include <glm/glm.hpp>
namespace vks
{
namespace debug
{
// Default debug callback
VKAPI_ATTR VkBool32 VKAPI_CALL messageCallback(
VkDebugReportFlagsEXT flags,
VkDebugReportObjectTypeEXT objType,
uint64_t srcObject,
size_t location,
int32_t msgCode,
const char* pLayerPrefix,
const char* pMsg,
void* pUserData);
// Load debug function pointers and set debug callback
void setupDebugging(VkInstance instance);
// Clear debug callback
void freeDebugCallback(VkInstance instance);
}
// Setup and functions for the VK_EXT_debug_marker_extension
// Extension spec can be found at https://github.com/KhronosGroup/Vulkan-Docs/blob/1.0-VK_EXT_debug_marker/doc/specs/vulkan/appendices/VK_EXT_debug_marker.txt
// Note that the extension will only be present if run from an offline debugging application
// The actual check for extension presence and enabling it on the device is done in the example base class
// See VulkanExampleBase::createInstance and VulkanExampleBase::createDevice (base/vulkanexamplebase.cpp)
namespace debugmarker
{
// Set to true if function pointer for the debug marker are available
extern bool active;
// Get function pointers for the debug report extensions from the device
void setup(VkDevice device);
// Sets the debug name of an object
// All Objects in Vulkan are represented by their 64-bit handles which are passed into this function
// along with the object type
void setObjectName(VkDevice device, uint64_t object, VkDebugReportObjectTypeEXT objectType, const char *name);
// Set the tag for an object
void setObjectTag(VkDevice device, uint64_t object, VkDebugReportObjectTypeEXT objectType, uint64_t name, size_t tagSize, const void* tag);
// Start a new debug marker region
void beginRegion(VkCommandBuffer cmdbuffer, const char* pMarkerName, glm::vec4 color);
// Insert a new debug marker into the command buffer
void insert(VkCommandBuffer cmdbuffer, std::string markerName, glm::vec4 color);
// End the current debug marker region
void endRegion(VkCommandBuffer cmdBuffer);
// Object specific naming functions
void setCommandBufferName(VkDevice device, VkCommandBuffer cmdBuffer, const char * name);
void setQueueName(VkDevice device, VkQueue queue, const char * name);
void setImageName(VkDevice device, VkImage image, const char * name);
void setSamplerName(VkDevice device, VkSampler sampler, const char * name);
void setBufferName(VkDevice device, VkBuffer buffer, const char * name);
void setDeviceMemoryName(VkDevice device, VkDeviceMemory memory, const char * name);
void setShaderModuleName(VkDevice device, VkShaderModule shaderModule, const char * name);
void setPipelineName(VkDevice device, VkPipeline pipeline, const char * name);
void setPipelineLayoutName(VkDevice device, VkPipelineLayout pipelineLayout, const char * name);
void setRenderPassName(VkDevice device, VkRenderPass renderPass, const char * name);
void setFramebufferName(VkDevice device, VkFramebuffer framebuffer, const char * name);
void setDescriptorSetLayoutName(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const char * name);
void setDescriptorSetName(VkDevice device, VkDescriptorSet descriptorSet, const char * name);
void setSemaphoreName(VkDevice device, VkSemaphore semaphore, const char * name);
void setFenceName(VkDevice device, VkFence fence, const char * name);
void setEventName(VkDevice device, VkEvent _event, const char * name);
};
}

View File

@ -1,596 +0,0 @@
/*
* Vulkan device class
*
* Encapsulates a physical Vulkan device and its logical representation
*
* Copyright (C) by Sascha Willems - www.saschawillems.de
*
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
*/
#if (defined(VK_USE_PLATFORM_IOS_MVK) || defined(VK_USE_PLATFORM_MACOS_MVK))
// SRS - Enable beta extensions and make VK_KHR_portability_subset visible
#define VK_ENABLE_BETA_EXTENSIONS
#endif
#include <VulkanDevice.h>
#include <unordered_set>
namespace vks
{
/**
* Default constructor
*
* @param physicalDevice Physical device that is to be used
*/
VulkanDevice::VulkanDevice(VkPhysicalDevice physicalDevice)
{
assert(physicalDevice);
this->physicalDevice = physicalDevice;
// Store Properties features, limits and properties of the physical device for later use
// Device properties also contain limits and sparse properties
vkGetPhysicalDeviceProperties(physicalDevice, &properties);
// Features should be checked by the examples before using them
vkGetPhysicalDeviceFeatures(physicalDevice, &features);
// Memory properties are used regularly for creating all kinds of buffers
vkGetPhysicalDeviceMemoryProperties(physicalDevice, &memoryProperties);
// Queue family properties, used for setting up requested queues upon device creation
uint32_t queueFamilyCount;
vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, &queueFamilyCount, nullptr);
assert(queueFamilyCount > 0);
queueFamilyProperties.resize(queueFamilyCount);
vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, &queueFamilyCount, queueFamilyProperties.data());
// Get list of supported extensions
uint32_t extCount = 0;
vkEnumerateDeviceExtensionProperties(physicalDevice, nullptr, &extCount, nullptr);
if (extCount > 0)
{
std::vector<VkExtensionProperties> extensions(extCount);
if (vkEnumerateDeviceExtensionProperties(physicalDevice, nullptr, &extCount, &extensions.front()) == VK_SUCCESS)
{
for (auto ext : extensions)
{
supportedExtensions.push_back(ext.extensionName);
}
}
}
}
/**
* Default destructor
*
* @note Frees the logical device
*/
VulkanDevice::~VulkanDevice()
{
if (commandPool)
{
vkDestroyCommandPool(logicalDevice, commandPool, nullptr);
}
if (logicalDevice)
{
vkDestroyDevice(logicalDevice, nullptr);
}
}
/**
* Get the index of a memory type that has all the requested property bits set
*
* @param typeBits Bit mask with bits set for each memory type supported by the resource to request for (from VkMemoryRequirements)
* @param properties Bit mask of properties for the memory type to request
* @param (Optional) memTypeFound Pointer to a bool that is set to true if a matching memory type has been found
*
* @return Index of the requested memory type
*
* @throw Throws an exception if memTypeFound is null and no memory type could be found that supports the requested properties
*/
uint32_t VulkanDevice::getMemoryType(uint32_t typeBits, VkMemoryPropertyFlags properties, VkBool32 *memTypeFound) const
{
for (uint32_t i = 0; i < memoryProperties.memoryTypeCount; i++)
{
if ((typeBits & 1) == 1)
{
if ((memoryProperties.memoryTypes[i].propertyFlags & properties) == properties)
{
if (memTypeFound)
{
*memTypeFound = true;
}
return i;
}
}
typeBits >>= 1;
}
if (memTypeFound)
{
*memTypeFound = false;
return 0;
}
else
{
throw std::runtime_error("Could not find a matching memory type");
}
}
/**
* Get the index of a queue family that supports the requested queue flags
* SRS - support VkQueueFlags parameter for requesting multiple flags vs. VkQueueFlagBits for a single flag only
*
* @param queueFlags Queue flags to find a queue family index for
*
* @return Index of the queue family index that matches the flags
*
* @throw Throws an exception if no queue family index could be found that supports the requested flags
*/
uint32_t VulkanDevice::getQueueFamilyIndex(VkQueueFlags queueFlags) const
{
// Dedicated queue for compute
// Try to find a queue family index that supports compute but not graphics
if ((queueFlags & VK_QUEUE_COMPUTE_BIT) == queueFlags)
{
for (uint32_t i = 0; i < static_cast<uint32_t>(queueFamilyProperties.size()); i++)
{
if ((queueFamilyProperties[i].queueFlags & VK_QUEUE_COMPUTE_BIT) && ((queueFamilyProperties[i].queueFlags & VK_QUEUE_GRAPHICS_BIT) == 0))
{
return i;
}
}
}
// Dedicated queue for transfer
// Try to find a queue family index that supports transfer but not graphics and compute
if ((queueFlags & VK_QUEUE_TRANSFER_BIT) == queueFlags)
{
for (uint32_t i = 0; i < static_cast<uint32_t>(queueFamilyProperties.size()); i++)
{
if ((queueFamilyProperties[i].queueFlags & VK_QUEUE_TRANSFER_BIT) && ((queueFamilyProperties[i].queueFlags & VK_QUEUE_GRAPHICS_BIT) == 0) && ((queueFamilyProperties[i].queueFlags & VK_QUEUE_COMPUTE_BIT) == 0))
{
return i;
}
}
}
// For other queue types or if no separate compute queue is present, return the first one to support the requested flags
for (uint32_t i = 0; i < static_cast<uint32_t>(queueFamilyProperties.size()); i++)
{
if ((queueFamilyProperties[i].queueFlags & queueFlags) == queueFlags)
{
return i;
}
}
throw std::runtime_error("Could not find a matching queue family index");
}
/**
* Create the logical device based on the assigned physical device, also gets default queue family indices
*
* @param enabledFeatures Can be used to enable certain features upon device creation
* @param pNextChain Optional chain of pointer to extension structures
* @param useSwapChain Set to false for headless rendering to omit the swapchain device extensions
* @param requestedQueueTypes Bit flags specifying the queue types to be requested from the device
*
* @return VkResult of the device creation call
*/
VkResult VulkanDevice::createLogicalDevice(VkPhysicalDeviceFeatures enabledFeatures, std::vector<const char*> enabledExtensions, void* pNextChain, bool useSwapChain, VkQueueFlags requestedQueueTypes)
{
// Desired queues need to be requested upon logical device creation
// Due to differing queue family configurations of Vulkan implementations this can be a bit tricky, especially if the application
// requests different queue types
std::vector<VkDeviceQueueCreateInfo> queueCreateInfos{};
// Get queue family indices for the requested queue family types
// Note that the indices may overlap depending on the implementation
const float defaultQueuePriority(0.0f);
// Graphics queue
if (requestedQueueTypes & VK_QUEUE_GRAPHICS_BIT)
{
queueFamilyIndices.graphics = getQueueFamilyIndex(VK_QUEUE_GRAPHICS_BIT);
VkDeviceQueueCreateInfo queueInfo{};
queueInfo.sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
queueInfo.queueFamilyIndex = queueFamilyIndices.graphics;
queueInfo.queueCount = 1;
queueInfo.pQueuePriorities = &defaultQueuePriority;
queueCreateInfos.push_back(queueInfo);
}
else
{
queueFamilyIndices.graphics = 0;
}
// Dedicated compute queue
if (requestedQueueTypes & VK_QUEUE_COMPUTE_BIT)
{
queueFamilyIndices.compute = getQueueFamilyIndex(VK_QUEUE_COMPUTE_BIT);
if (queueFamilyIndices.compute != queueFamilyIndices.graphics)
{
// If compute family index differs, we need an additional queue create info for the compute queue
VkDeviceQueueCreateInfo queueInfo{};
queueInfo.sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
queueInfo.queueFamilyIndex = queueFamilyIndices.compute;
queueInfo.queueCount = 1;
queueInfo.pQueuePriorities = &defaultQueuePriority;
queueCreateInfos.push_back(queueInfo);
}
}
else
{
// Else we use the same queue
queueFamilyIndices.compute = queueFamilyIndices.graphics;
}
// Dedicated transfer queue
if (requestedQueueTypes & VK_QUEUE_TRANSFER_BIT)
{
queueFamilyIndices.transfer = getQueueFamilyIndex(VK_QUEUE_TRANSFER_BIT);
if ((queueFamilyIndices.transfer != queueFamilyIndices.graphics) && (queueFamilyIndices.transfer != queueFamilyIndices.compute))
{
// If transfer family index differs, we need an additional queue create info for the transfer queue
VkDeviceQueueCreateInfo queueInfo{};
queueInfo.sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
queueInfo.queueFamilyIndex = queueFamilyIndices.transfer;
queueInfo.queueCount = 1;
queueInfo.pQueuePriorities = &defaultQueuePriority;
queueCreateInfos.push_back(queueInfo);
}
}
else
{
// Else we use the same queue
queueFamilyIndices.transfer = queueFamilyIndices.graphics;
}
// Create the logical device representation
std::vector<const char*> deviceExtensions(enabledExtensions);
if (useSwapChain)
{
// If the device will be used for presenting to a display via a swapchain we need to request the swapchain extension
deviceExtensions.push_back(VK_KHR_SWAPCHAIN_EXTENSION_NAME);
}
VkDeviceCreateInfo deviceCreateInfo = {};
deviceCreateInfo.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
deviceCreateInfo.queueCreateInfoCount = static_cast<uint32_t>(queueCreateInfos.size());;
deviceCreateInfo.pQueueCreateInfos = queueCreateInfos.data();
deviceCreateInfo.pEnabledFeatures = &enabledFeatures;
// If a pNext(Chain) has been passed, we need to add it to the device creation info
VkPhysicalDeviceFeatures2 physicalDeviceFeatures2{};
if (pNextChain) {
physicalDeviceFeatures2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
physicalDeviceFeatures2.features = enabledFeatures;
physicalDeviceFeatures2.pNext = pNextChain;
deviceCreateInfo.pEnabledFeatures = nullptr;
deviceCreateInfo.pNext = &physicalDeviceFeatures2;
}
// Enable the debug marker extension if it is present (likely meaning a debugging tool is present)
if (extensionSupported(VK_EXT_DEBUG_MARKER_EXTENSION_NAME))
{
deviceExtensions.push_back(VK_EXT_DEBUG_MARKER_EXTENSION_NAME);
enableDebugMarkers = true;
}
#if (defined(VK_USE_PLATFORM_IOS_MVK) || defined(VK_USE_PLATFORM_MACOS_MVK)) && defined(VK_KHR_portability_subset)
// SRS - When running on iOS/macOS with MoltenVK and VK_KHR_portability_subset is defined and supported by the device, enable the extension
if (extensionSupported(VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME))
{
deviceExtensions.push_back(VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME);
}
#endif
if (deviceExtensions.size() > 0)
{
for (const char* enabledExtension : deviceExtensions)
{
if (!extensionSupported(enabledExtension)) {
std::cerr << "Enabled device extension \"" << enabledExtension << "\" is not present at device level\n";
}
}
deviceCreateInfo.enabledExtensionCount = (uint32_t)deviceExtensions.size();
deviceCreateInfo.ppEnabledExtensionNames = deviceExtensions.data();
}
this->enabledFeatures = enabledFeatures;
VkResult result = vkCreateDevice(physicalDevice, &deviceCreateInfo, nullptr, &logicalDevice);
if (result != VK_SUCCESS)
{
return result;
}
// Create a default command pool for graphics command buffers
commandPool = createCommandPool(queueFamilyIndices.graphics);
return result;
}
/**
* Create a buffer on the device
*
* @param usageFlags Usage flag bit mask for the buffer (i.e. index, vertex, uniform buffer)
* @param memoryPropertyFlags Memory properties for this buffer (i.e. device local, host visible, coherent)
* @param size Size of the buffer in byes
* @param buffer Pointer to the buffer handle acquired by the function
* @param memory Pointer to the memory handle acquired by the function
* @param data Pointer to the data that should be copied to the buffer after creation (optional, if not set, no data is copied over)
*
* @return VK_SUCCESS if buffer handle and memory have been created and (optionally passed) data has been copied
*/
VkResult VulkanDevice::createBuffer(VkBufferUsageFlags usageFlags, VkMemoryPropertyFlags memoryPropertyFlags, VkDeviceSize size, VkBuffer *buffer, VkDeviceMemory *memory, void *data)
{
// Create the buffer handle
VkBufferCreateInfo bufferCreateInfo = vks::initializers::bufferCreateInfo(usageFlags, size);
bufferCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
VK_CHECK_RESULT(vkCreateBuffer(logicalDevice, &bufferCreateInfo, nullptr, buffer));
// Create the memory backing up the buffer handle
VkMemoryRequirements memReqs;
VkMemoryAllocateInfo memAlloc = vks::initializers::memoryAllocateInfo();
vkGetBufferMemoryRequirements(logicalDevice, *buffer, &memReqs);
memAlloc.allocationSize = memReqs.size;
// Find a memory type index that fits the properties of the buffer
memAlloc.memoryTypeIndex = getMemoryType(memReqs.memoryTypeBits, memoryPropertyFlags);
// If the buffer has VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT set we also need to enable the appropriate flag during allocation
VkMemoryAllocateFlagsInfoKHR allocFlagsInfo{};
if (usageFlags & VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT) {
allocFlagsInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR;
allocFlagsInfo.flags = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR;
memAlloc.pNext = &allocFlagsInfo;
}
VK_CHECK_RESULT(vkAllocateMemory(logicalDevice, &memAlloc, nullptr, memory));
// If a pointer to the buffer data has been passed, map the buffer and copy over the data
if (data != nullptr)
{
void *mapped;
VK_CHECK_RESULT(vkMapMemory(logicalDevice, *memory, 0, size, 0, &mapped));
memcpy(mapped, data, size);
// If host coherency hasn't been requested, do a manual flush to make writes visible
if ((memoryPropertyFlags & VK_MEMORY_PROPERTY_HOST_COHERENT_BIT) == 0)
{
VkMappedMemoryRange mappedRange = vks::initializers::mappedMemoryRange();
mappedRange.memory = *memory;
mappedRange.offset = 0;
mappedRange.size = size;
vkFlushMappedMemoryRanges(logicalDevice, 1, &mappedRange);
}
vkUnmapMemory(logicalDevice, *memory);
}
// Attach the memory to the buffer object
VK_CHECK_RESULT(vkBindBufferMemory(logicalDevice, *buffer, *memory, 0));
return VK_SUCCESS;
}
/**
* Create a buffer on the device
*
* @param usageFlags Usage flag bit mask for the buffer (i.e. index, vertex, uniform buffer)
* @param memoryPropertyFlags Memory properties for this buffer (i.e. device local, host visible, coherent)
* @param buffer Pointer to a vk::Vulkan buffer object
* @param size Size of the buffer in bytes
* @param data Pointer to the data that should be copied to the buffer after creation (optional, if not set, no data is copied over)
*
* @return VK_SUCCESS if buffer handle and memory have been created and (optionally passed) data has been copied
*/
VkResult VulkanDevice::createBuffer(VkBufferUsageFlags usageFlags, VkMemoryPropertyFlags memoryPropertyFlags, vks::Buffer *buffer, VkDeviceSize size, void *data)
{
buffer->device = logicalDevice;
// Create the buffer handle
VkBufferCreateInfo bufferCreateInfo = vks::initializers::bufferCreateInfo(usageFlags, size);
VK_CHECK_RESULT(vkCreateBuffer(logicalDevice, &bufferCreateInfo, nullptr, &buffer->buffer));
// Create the memory backing up the buffer handle
VkMemoryRequirements memReqs;
VkMemoryAllocateInfo memAlloc = vks::initializers::memoryAllocateInfo();
vkGetBufferMemoryRequirements(logicalDevice, buffer->buffer, &memReqs);
memAlloc.allocationSize = memReqs.size;
// Find a memory type index that fits the properties of the buffer
memAlloc.memoryTypeIndex = getMemoryType(memReqs.memoryTypeBits, memoryPropertyFlags);
// If the buffer has VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT set we also need to enable the appropriate flag during allocation
VkMemoryAllocateFlagsInfoKHR allocFlagsInfo{};
if (usageFlags & VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT) {
allocFlagsInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR;
allocFlagsInfo.flags = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR;
memAlloc.pNext = &allocFlagsInfo;
}
VK_CHECK_RESULT(vkAllocateMemory(logicalDevice, &memAlloc, nullptr, &buffer->memory));
buffer->alignment = memReqs.alignment;
buffer->size = size;
buffer->usageFlags = usageFlags;
buffer->memoryPropertyFlags = memoryPropertyFlags;
// If a pointer to the buffer data has been passed, map the buffer and copy over the data
if (data != nullptr)
{
VK_CHECK_RESULT(buffer->map());
memcpy(buffer->mapped, data, size);
if ((memoryPropertyFlags & VK_MEMORY_PROPERTY_HOST_COHERENT_BIT) == 0)
buffer->flush();
buffer->unmap();
}
// Initialize a default descriptor that covers the whole buffer size
buffer->setupDescriptor();
// Attach the memory to the buffer object
return buffer->bind();
}
/**
* Copy buffer data from src to dst using VkCmdCopyBuffer
*
* @param src Pointer to the source buffer to copy from
* @param dst Pointer to the destination buffer to copy to
* @param queue Pointer
* @param copyRegion (Optional) Pointer to a copy region, if NULL, the whole buffer is copied
*
* @note Source and destination pointers must have the appropriate transfer usage flags set (TRANSFER_SRC / TRANSFER_DST)
*/
void VulkanDevice::copyBuffer(vks::Buffer *src, vks::Buffer *dst, VkQueue queue, VkBufferCopy *copyRegion)
{
assert(dst->size <= src->size);
assert(src->buffer);
VkCommandBuffer copyCmd = createCommandBuffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true);
VkBufferCopy bufferCopy{};
if (copyRegion == nullptr)
{
bufferCopy.size = src->size;
}
else
{
bufferCopy = *copyRegion;
}
vkCmdCopyBuffer(copyCmd, src->buffer, dst->buffer, 1, &bufferCopy);
flushCommandBuffer(copyCmd, queue);
}
/**
* Create a command pool for allocation command buffers from
*
* @param queueFamilyIndex Family index of the queue to create the command pool for
* @param createFlags (Optional) Command pool creation flags (Defaults to VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT)
*
* @note Command buffers allocated from the created pool can only be submitted to a queue with the same family index
*
* @return A handle to the created command buffer
*/
VkCommandPool VulkanDevice::createCommandPool(uint32_t queueFamilyIndex, VkCommandPoolCreateFlags createFlags)
{
VkCommandPoolCreateInfo cmdPoolInfo = {};
cmdPoolInfo.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO;
cmdPoolInfo.queueFamilyIndex = queueFamilyIndex;
cmdPoolInfo.flags = createFlags;
VkCommandPool cmdPool;
VK_CHECK_RESULT(vkCreateCommandPool(logicalDevice, &cmdPoolInfo, nullptr, &cmdPool));
return cmdPool;
}
/**
* Allocate a command buffer from the command pool
*
* @param level Level of the new command buffer (primary or secondary)
* @param pool Command pool from which the command buffer will be allocated
* @param (Optional) begin If true, recording on the new command buffer will be started (vkBeginCommandBuffer) (Defaults to false)
*
* @return A handle to the allocated command buffer
*/
VkCommandBuffer VulkanDevice::createCommandBuffer(VkCommandBufferLevel level, VkCommandPool pool, bool begin)
{
VkCommandBufferAllocateInfo cmdBufAllocateInfo = vks::initializers::commandBufferAllocateInfo(pool, level, 1);
VkCommandBuffer cmdBuffer;
VK_CHECK_RESULT(vkAllocateCommandBuffers(logicalDevice, &cmdBufAllocateInfo, &cmdBuffer));
// If requested, also start recording for the new command buffer
if (begin)
{
VkCommandBufferBeginInfo cmdBufInfo = vks::initializers::commandBufferBeginInfo();
VK_CHECK_RESULT(vkBeginCommandBuffer(cmdBuffer, &cmdBufInfo));
}
return cmdBuffer;
}
VkCommandBuffer VulkanDevice::createCommandBuffer(VkCommandBufferLevel level, bool begin)
{
return createCommandBuffer(level, commandPool, begin);
}
/**
* Finish command buffer recording and submit it to a queue
*
* @param commandBuffer Command buffer to flush
* @param queue Queue to submit the command buffer to
* @param pool Command pool on which the command buffer has been created
* @param free (Optional) Free the command buffer once it has been submitted (Defaults to true)
*
* @note The queue that the command buffer is submitted to must be from the same family index as the pool it was allocated from
* @note Uses a fence to ensure command buffer has finished executing
*/
void VulkanDevice::flushCommandBuffer(VkCommandBuffer commandBuffer, VkQueue queue, VkCommandPool pool, bool free)
{
if (commandBuffer == VK_NULL_HANDLE)
{
return;
}
VK_CHECK_RESULT(vkEndCommandBuffer(commandBuffer));
VkSubmitInfo submitInfo = vks::initializers::submitInfo();
submitInfo.commandBufferCount = 1;
submitInfo.pCommandBuffers = &commandBuffer;
// Create fence to ensure that the command buffer has finished executing
VkFenceCreateInfo fenceInfo = vks::initializers::fenceCreateInfo(VK_FLAGS_NONE);
VkFence fence;
VK_CHECK_RESULT(vkCreateFence(logicalDevice, &fenceInfo, nullptr, &fence));
// Submit to the queue
VK_CHECK_RESULT(vkQueueSubmit(queue, 1, &submitInfo, fence));
// Wait for the fence to signal that command buffer has finished executing
VK_CHECK_RESULT(vkWaitForFences(logicalDevice, 1, &fence, VK_TRUE, DEFAULT_FENCE_TIMEOUT));
vkDestroyFence(logicalDevice, fence, nullptr);
if (free)
{
vkFreeCommandBuffers(logicalDevice, pool, 1, &commandBuffer);
}
}
void VulkanDevice::flushCommandBuffer(VkCommandBuffer commandBuffer, VkQueue queue, bool free)
{
return flushCommandBuffer(commandBuffer, queue, commandPool, free);
}
/**
* Check if an extension is supported by the (physical device)
*
* @param extension Name of the extension to check
*
* @return True if the extension is supported (present in the list read at device creation time)
*/
bool VulkanDevice::extensionSupported(std::string extension)
{
return (std::find(supportedExtensions.begin(), supportedExtensions.end(), extension) != supportedExtensions.end());
}
/**
* Select the best-fit depth format for this device from a list of possible depth (and stencil) formats
*
* @param checkSamplingSupport Check if the format can be sampled from (e.g. for shader reads)
*
* @return The depth format that best fits for the current device
*
* @throw Throws an exception if no depth format fits the requirements
*/
VkFormat VulkanDevice::getSupportedDepthFormat(bool checkSamplingSupport)
{
// All depth formats may be optional, so we need to find a suitable depth format to use
std::vector<VkFormat> depthFormats = { VK_FORMAT_D32_SFLOAT_S8_UINT, VK_FORMAT_D32_SFLOAT, VK_FORMAT_D24_UNORM_S8_UINT, VK_FORMAT_D16_UNORM_S8_UINT, VK_FORMAT_D16_UNORM };
for (auto& format : depthFormats)
{
VkFormatProperties formatProperties;
vkGetPhysicalDeviceFormatProperties(physicalDevice, format, &formatProperties);
// Format must support depth stencil attachment for optimal tiling
if (formatProperties.optimalTilingFeatures & VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT)
{
if (checkSamplingSupport) {
if (!(formatProperties.optimalTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)) {
continue;
}
}
return format;
}
}
throw std::runtime_error("Could not find a matching depth format");
}
};

View File

@ -1,71 +0,0 @@
/*
* Vulkan device class
*
* Encapsulates a physical Vulkan device and its logical representation
*
* Copyright (C) by Sascha Willems - www.saschawillems.de
*
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
*/
#pragma once
#include "VulkanBuffer.h"
#include "VulkanTools.h"
#include "vulkan/vulkan.h"
#include <algorithm>
#include <assert.h>
#include <exception>
namespace vks
{
struct VulkanDevice
{
/** @brief Physical device representation */
VkPhysicalDevice physicalDevice;
/** @brief Logical device representation (application's view of the device) */
VkDevice logicalDevice;
/** @brief Properties of the physical device including limits that the application can check against */
VkPhysicalDeviceProperties properties;
/** @brief Features of the physical device that an application can use to check if a feature is supported */
VkPhysicalDeviceFeatures features;
/** @brief Features that have been enabled for use on the physical device */
VkPhysicalDeviceFeatures enabledFeatures;
/** @brief Memory types and heaps of the physical device */
VkPhysicalDeviceMemoryProperties memoryProperties;
/** @brief Queue family properties of the physical device */
std::vector<VkQueueFamilyProperties> queueFamilyProperties;
/** @brief List of extensions supported by the device */
std::vector<std::string> supportedExtensions;
/** @brief Default command pool for the graphics queue family index */
VkCommandPool commandPool = VK_NULL_HANDLE;
/** @brief Set to true when the debug marker extension is detected */
bool enableDebugMarkers = false;
/** @brief Contains queue family indices */
struct
{
uint32_t graphics;
uint32_t compute;
uint32_t transfer;
} queueFamilyIndices;
operator VkDevice() const
{
return logicalDevice;
};
explicit VulkanDevice(VkPhysicalDevice physicalDevice);
~VulkanDevice();
uint32_t getMemoryType(uint32_t typeBits, VkMemoryPropertyFlags properties, VkBool32 *memTypeFound = nullptr) const;
uint32_t getQueueFamilyIndex(VkQueueFlags queueFlags) const;
VkResult createLogicalDevice(VkPhysicalDeviceFeatures enabledFeatures, std::vector<const char *> enabledExtensions, void *pNextChain, bool useSwapChain = true, VkQueueFlags requestedQueueTypes = VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT);
VkResult createBuffer(VkBufferUsageFlags usageFlags, VkMemoryPropertyFlags memoryPropertyFlags, VkDeviceSize size, VkBuffer *buffer, VkDeviceMemory *memory, void *data = nullptr);
VkResult createBuffer(VkBufferUsageFlags usageFlags, VkMemoryPropertyFlags memoryPropertyFlags, vks::Buffer *buffer, VkDeviceSize size, void *data = nullptr);
void copyBuffer(vks::Buffer *src, vks::Buffer *dst, VkQueue queue, VkBufferCopy *copyRegion = nullptr);
VkCommandPool createCommandPool(uint32_t queueFamilyIndex, VkCommandPoolCreateFlags createFlags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT);
VkCommandBuffer createCommandBuffer(VkCommandBufferLevel level, VkCommandPool pool, bool begin = false);
VkCommandBuffer createCommandBuffer(VkCommandBufferLevel level, bool begin = false);
void flushCommandBuffer(VkCommandBuffer commandBuffer, VkQueue queue, VkCommandPool pool, bool free = true);
void flushCommandBuffer(VkCommandBuffer commandBuffer, VkQueue queue, bool free = true);
bool extensionSupported(std::string extension);
VkFormat getSupportedDepthFormat(bool checkSamplingSupport);
};
} // namespace vks

View File

@ -9,7 +9,7 @@
*/
#pragma once
#include <cstdio>
#include <exception>
#include <assert.h>
#include <algorithm>
@ -25,7 +25,7 @@
#include "VulkanAndroid.h"
#endif
#include "macros.h"
#include "VulkanTools.h"
namespace vks
{

View File

@ -1,367 +0,0 @@
/*
* Vulkan framebuffer class
*
* Copyright (C) 2016 by Sascha Willems - www.saschawillems.de
*
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
*/
#pragma once
#include <algorithm>
#include <iterator>
#include <vector>
#include "vulkan/vulkan.h"
#include "VulkanDevice.hpp"
#include "VulkanTools.h"
namespace vks
{
/**
* @brief Encapsulates a single frame buffer attachment
*/
struct FramebufferAttachment
{
VkImage image;
VkDeviceMemory memory;
VkImageView view;
VkFormat format;
VkImageSubresourceRange subresourceRange;
VkAttachmentDescription description;
/**
* @brief Returns true if the attachment has a depth component
*/
bool hasDepth()
{
std::vector<VkFormat> formats =
{
VK_FORMAT_D16_UNORM,
VK_FORMAT_X8_D24_UNORM_PACK32,
VK_FORMAT_D32_SFLOAT,
VK_FORMAT_D16_UNORM_S8_UINT,
VK_FORMAT_D24_UNORM_S8_UINT,
VK_FORMAT_D32_SFLOAT_S8_UINT,
};
return std::find(formats.begin(), formats.end(), format) != std::end(formats);
}
/**
* @brief Returns true if the attachment has a stencil component
*/
bool hasStencil()
{
std::vector<VkFormat> formats =
{
VK_FORMAT_S8_UINT,
VK_FORMAT_D16_UNORM_S8_UINT,
VK_FORMAT_D24_UNORM_S8_UINT,
VK_FORMAT_D32_SFLOAT_S8_UINT,
};
return std::find(formats.begin(), formats.end(), format) != std::end(formats);
}
/**
* @brief Returns true if the attachment is a depth and/or stencil attachment
*/
bool isDepthStencil()
{
return(hasDepth() || hasStencil());
}
};
/**
* @brief Describes the attributes of an attachment to be created
*/
struct AttachmentCreateInfo
{
uint32_t width, height;
uint32_t layerCount;
VkFormat format;
VkImageUsageFlags usage;
VkSampleCountFlagBits imageSampleCount = VK_SAMPLE_COUNT_1_BIT;
};
/**
* @brief Encapsulates a complete Vulkan framebuffer with an arbitrary number and combination of attachments
*/
struct Framebuffer
{
private:
vks::VulkanDevice *vulkanDevice;
public:
uint32_t width, height;
VkFramebuffer framebuffer;
VkRenderPass renderPass;
VkSampler sampler;
std::vector<vks::FramebufferAttachment> attachments;
/**
* Default constructor
*
* @param vulkanDevice Pointer to a valid VulkanDevice
*/
Framebuffer(vks::VulkanDevice *vulkanDevice)
{
assert(vulkanDevice);
this->vulkanDevice = vulkanDevice;
}
/**
* Destroy and free Vulkan resources used for the framebuffer and all of its attachments
*/
~Framebuffer()
{
assert(vulkanDevice);
for (auto attachment : attachments)
{
vkDestroyImage(vulkanDevice->logicalDevice, attachment.image, nullptr);
vkDestroyImageView(vulkanDevice->logicalDevice, attachment.view, nullptr);
vkFreeMemory(vulkanDevice->logicalDevice, attachment.memory, nullptr);
}
vkDestroySampler(vulkanDevice->logicalDevice, sampler, nullptr);
vkDestroyRenderPass(vulkanDevice->logicalDevice, renderPass, nullptr);
vkDestroyFramebuffer(vulkanDevice->logicalDevice, framebuffer, nullptr);
}
/**
* Add a new attachment described by createinfo to the framebuffer's attachment list
*
* @param createinfo Structure that specifies the framebuffer to be constructed
*
* @return Index of the new attachment
*/
uint32_t addAttachment(vks::AttachmentCreateInfo createinfo)
{
vks::FramebufferAttachment attachment;
attachment.format = createinfo.format;
VkImageAspectFlags aspectMask = VK_FLAGS_NONE;
// Select aspect mask and layout depending on usage
// Color attachment
if (createinfo.usage & VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT)
{
aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
}
// Depth (and/or stencil) attachment
if (createinfo.usage & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT)
{
if (attachment.hasDepth())
{
aspectMask = VK_IMAGE_ASPECT_DEPTH_BIT;
}
if (attachment.hasStencil())
{
aspectMask = aspectMask | VK_IMAGE_ASPECT_STENCIL_BIT;
}
}
assert(aspectMask > 0);
VkImageCreateInfo image = vks::initializers::imageCreateInfo();
image.imageType = VK_IMAGE_TYPE_2D;
image.format = createinfo.format;
image.extent.width = createinfo.width;
image.extent.height = createinfo.height;
image.extent.depth = 1;
image.mipLevels = 1;
image.arrayLayers = createinfo.layerCount;
image.samples = createinfo.imageSampleCount;
image.tiling = VK_IMAGE_TILING_OPTIMAL;
image.usage = createinfo.usage;
VkMemoryAllocateInfo memAlloc = vks::initializers::memoryAllocateInfo();
VkMemoryRequirements memReqs;
// Create image for this attachment
VK_CHECK_RESULT(vkCreateImage(vulkanDevice->logicalDevice, &image, nullptr, &attachment.image));
vkGetImageMemoryRequirements(vulkanDevice->logicalDevice, attachment.image, &memReqs);
memAlloc.allocationSize = memReqs.size;
memAlloc.memoryTypeIndex = vulkanDevice->getMemoryType(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT);
VK_CHECK_RESULT(vkAllocateMemory(vulkanDevice->logicalDevice, &memAlloc, nullptr, &attachment.memory));
VK_CHECK_RESULT(vkBindImageMemory(vulkanDevice->logicalDevice, attachment.image, attachment.memory, 0));
attachment.subresourceRange = {};
attachment.subresourceRange.aspectMask = aspectMask;
attachment.subresourceRange.levelCount = 1;
attachment.subresourceRange.layerCount = createinfo.layerCount;
VkImageViewCreateInfo imageView = vks::initializers::imageViewCreateInfo();
imageView.viewType = (createinfo.layerCount == 1) ? VK_IMAGE_VIEW_TYPE_2D : VK_IMAGE_VIEW_TYPE_2D_ARRAY;
imageView.format = createinfo.format;
imageView.subresourceRange = attachment.subresourceRange;
//todo: workaround for depth+stencil attachments
imageView.subresourceRange.aspectMask = (attachment.hasDepth()) ? VK_IMAGE_ASPECT_DEPTH_BIT : aspectMask;
imageView.image = attachment.image;
VK_CHECK_RESULT(vkCreateImageView(vulkanDevice->logicalDevice, &imageView, nullptr, &attachment.view));
// Fill attachment description
attachment.description = {};
attachment.description.samples = createinfo.imageSampleCount;
attachment.description.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR;
attachment.description.storeOp = (createinfo.usage & VK_IMAGE_USAGE_SAMPLED_BIT) ? VK_ATTACHMENT_STORE_OP_STORE : VK_ATTACHMENT_STORE_OP_DONT_CARE;
attachment.description.stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
attachment.description.stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE;
attachment.description.format = createinfo.format;
attachment.description.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
// Final layout
// If not, final layout depends on attachment type
if (attachment.hasDepth() || attachment.hasStencil())
{
attachment.description.finalLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL;
}
else
{
attachment.description.finalLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
}
attachments.push_back(attachment);
return static_cast<uint32_t>(attachments.size() - 1);
}
/**
* Creates a default sampler for sampling from any of the framebuffer attachments
* Applications are free to create their own samplers for different use cases
*
* @param magFilter Magnification filter for lookups
* @param minFilter Minification filter for lookups
* @param adressMode Addressing mode for the U,V and W coordinates
*
* @return VkResult for the sampler creation
*/
VkResult createSampler(VkFilter magFilter, VkFilter minFilter, VkSamplerAddressMode adressMode)
{
VkSamplerCreateInfo samplerInfo = vks::initializers::samplerCreateInfo();
samplerInfo.magFilter = magFilter;
samplerInfo.minFilter = minFilter;
samplerInfo.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR;
samplerInfo.addressModeU = adressMode;
samplerInfo.addressModeV = adressMode;
samplerInfo.addressModeW = adressMode;
samplerInfo.mipLodBias = 0.0f;
samplerInfo.maxAnisotropy = 1.0f;
samplerInfo.minLod = 0.0f;
samplerInfo.maxLod = 1.0f;
samplerInfo.borderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE;
return vkCreateSampler(vulkanDevice->logicalDevice, &samplerInfo, nullptr, &sampler);
}
/**
* Creates a default render pass setup with one sub pass
*
* @return VK_SUCCESS if all resources have been created successfully
*/
VkResult createRenderPass()
{
std::vector<VkAttachmentDescription> attachmentDescriptions;
for (auto& attachment : attachments)
{
attachmentDescriptions.push_back(attachment.description);
};
// Collect attachment references
std::vector<VkAttachmentReference> colorReferences;
VkAttachmentReference depthReference = {};
bool hasDepth = false;
bool hasColor = false;
uint32_t attachmentIndex = 0;
for (auto& attachment : attachments)
{
if (attachment.isDepthStencil())
{
// Only one depth attachment allowed
assert(!hasDepth);
depthReference.attachment = attachmentIndex;
depthReference.layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
hasDepth = true;
}
else
{
colorReferences.push_back({ attachmentIndex, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL });
hasColor = true;
}
attachmentIndex++;
};
// Default render pass setup uses only one subpass
VkSubpassDescription subpass = {};
subpass.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS;
if (hasColor)
{
subpass.pColorAttachments = colorReferences.data();
subpass.colorAttachmentCount = static_cast<uint32_t>(colorReferences.size());
}
if (hasDepth)
{
subpass.pDepthStencilAttachment = &depthReference;
}
// Use subpass dependencies for attachment layout transitions
std::array<VkSubpassDependency, 2> dependencies;
dependencies[0].srcSubpass = VK_SUBPASS_EXTERNAL;
dependencies[0].dstSubpass = 0;
dependencies[0].srcStageMask = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT;
dependencies[0].dstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
dependencies[0].srcAccessMask = VK_ACCESS_MEMORY_READ_BIT;
dependencies[0].dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
dependencies[0].dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT;
dependencies[1].srcSubpass = 0;
dependencies[1].dstSubpass = VK_SUBPASS_EXTERNAL;
dependencies[1].srcStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
dependencies[1].dstStageMask = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT;
dependencies[1].srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
dependencies[1].dstAccessMask = VK_ACCESS_MEMORY_READ_BIT;
dependencies[1].dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT;
// Create render pass
VkRenderPassCreateInfo renderPassInfo = {};
renderPassInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
renderPassInfo.pAttachments = attachmentDescriptions.data();
renderPassInfo.attachmentCount = static_cast<uint32_t>(attachmentDescriptions.size());
renderPassInfo.subpassCount = 1;
renderPassInfo.pSubpasses = &subpass;
renderPassInfo.dependencyCount = 2;
renderPassInfo.pDependencies = dependencies.data();
VK_CHECK_RESULT(vkCreateRenderPass(vulkanDevice->logicalDevice, &renderPassInfo, nullptr, &renderPass));
std::vector<VkImageView> attachmentViews;
for (auto attachment : attachments)
{
attachmentViews.push_back(attachment.view);
}
// Find. max number of layers across attachments
uint32_t maxLayers = 0;
for (auto attachment : attachments)
{
if (attachment.subresourceRange.layerCount > maxLayers)
{
maxLayers = attachment.subresourceRange.layerCount;
}
}
VkFramebufferCreateInfo framebufferInfo = {};
framebufferInfo.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO;
framebufferInfo.renderPass = renderPass;
framebufferInfo.pAttachments = attachmentViews.data();
framebufferInfo.attachmentCount = static_cast<uint32_t>(attachmentViews.size());
framebufferInfo.width = width;
framebufferInfo.height = height;
framebufferInfo.layers = maxLayers;
VK_CHECK_RESULT(vkCreateFramebuffer(vulkanDevice->logicalDevice, &framebufferInfo, nullptr, &framebuffer));
return VK_SUCCESS;
}
};
}

View File

@ -1,259 +0,0 @@
/*
* Heightmap terrain generator
*
* Copyright (C) by Sascha Willems - www.saschawillems.de
*
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
*/
#include <glm/glm.hpp>
#include <glm/glm.hpp>
#include "vulkan/vulkan.h"
#include "VulkanDevice.hpp"
#include "VulkanBuffer.h"
#include <ktx.h>
#include <ktxvulkan.h>
namespace vks
{
class HeightMap
{
private:
uint16_t *heightdata;
uint32_t dim;
uint32_t scale;
vks::VulkanDevice *device = nullptr;
VkQueue copyQueue = VK_NULL_HANDLE;
public:
enum Topology { topologyTriangles, topologyQuads };
float heightScale = 1.0f;
float uvScale = 1.0f;
vks::Buffer vertexBuffer;
vks::Buffer indexBuffer;
struct Vertex {
glm::vec3 pos;
glm::vec3 normal;
glm::vec2 uv;
};
size_t vertexBufferSize = 0;
size_t indexBufferSize = 0;
uint32_t indexCount = 0;
HeightMap(vks::VulkanDevice *device, VkQueue copyQueue)
{
this->device = device;
this->copyQueue = copyQueue;
};
~HeightMap()
{
vertexBuffer.destroy();
indexBuffer.destroy();
delete[] heightdata;
}
float getHeight(uint32_t x, uint32_t y)
{
glm::ivec2 rpos = glm::ivec2(x, y) * glm::ivec2(scale);
rpos.x = std::max(0, std::min(rpos.x, (int)dim - 1));
rpos.y = std::max(0, std::min(rpos.y, (int)dim - 1));
rpos /= glm::ivec2(scale);
return *(heightdata + (rpos.x + rpos.y * dim) * scale) / 65535.0f * heightScale;
}
#if defined(__ANDROID__)
void loadFromFile(const std::string filename, uint32_t patchsize, glm::vec3 scale, Topology topology, AAssetManager* assetManager)
#else
void loadFromFile(const std::string filename, uint32_t patchsize, glm::vec3 scale, Topology topology)
#endif
{
assert(device);
assert(copyQueue != VK_NULL_HANDLE);
ktxResult result;
ktxTexture* ktxTexture;
#if defined(__ANDROID__)
AAsset* asset = AAssetManager_open(androidApp->activity->assetManager, filename.c_str(), AASSET_MODE_STREAMING);
assert(asset);
size_t size = AAsset_getLength(asset);
assert(size > 0);
void *textureData = malloc(size);
AAsset_read(asset, textureData, size);
AAsset_close(asset);
result = ktxTexture_CreateFromMemory(textureData, size, KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT, target);
free(textureData);
#else
result = ktxTexture_CreateFromNamedFile(filename.c_str(), KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT, &ktxTexture);
#endif
assert(result == KTX_SUCCESS);
ktx_size_t ktxSize = ktxTexture_GetImageSize(ktxTexture, 0);
ktx_uint8_t* ktxImage = ktxTexture_GetData(ktxTexture);
dim = ktxTexture->baseWidth;
heightdata = new uint16_t[dim * dim];
memcpy(heightdata, ktxImage, ktxSize);
this->scale = dim / patchsize;
ktxTexture_Destroy(ktxTexture);
// Generate vertices
Vertex * vertices = new Vertex[patchsize * patchsize * 4];
const float wx = 2.0f;
const float wy = 2.0f;
for (uint32_t x = 0; x < patchsize; x++)
{
for (uint32_t y = 0; y < patchsize; y++)
{
uint32_t index = (x + y * patchsize);
vertices[index].pos[0] = (x * wx + wx / 2.0f - (float)patchsize * wx / 2.0f) * scale.x;
vertices[index].pos[1] = -getHeight(x, y);
vertices[index].pos[2] = (y * wy + wy / 2.0f - (float)patchsize * wy / 2.0f) * scale.z;
vertices[index].uv = glm::vec2((float)x / patchsize, (float)y / patchsize) * uvScale;
}
}
for (uint32_t y = 0; y < patchsize; y++)
{
for (uint32_t x = 0; x < patchsize; x++)
{
float dx = getHeight(x < patchsize - 1 ? x + 1 : x, y) - getHeight(x > 0 ? x - 1 : x, y);
if (x == 0 || x == patchsize - 1)
dx *= 2.0f;
float dy = getHeight(x, y < patchsize - 1 ? y + 1 : y) - getHeight(x, y > 0 ? y - 1 : y);
if (y == 0 || y == patchsize - 1)
dy *= 2.0f;
glm::vec3 A = glm::vec3(1.0f, 0.0f, dx);
glm::vec3 B = glm::vec3(0.0f, 1.0f, dy);
glm::vec3 normal = (glm::normalize(glm::cross(A, B)) + 1.0f) * 0.5f;
vertices[x + y * patchsize].normal = glm::vec3(normal.x, normal.z, normal.y);
}
}
// Generate indices
const uint32_t w = (patchsize - 1);
uint32_t *indices;
switch (topology)
{
// Indices for triangles
case topologyTriangles:
{
indices = new uint32_t[w * w * 6];
for (uint32_t x = 0; x < w; x++)
{
for (uint32_t y = 0; y < w; y++)
{
uint32_t index = (x + y * w) * 6;
indices[index] = (x + y * patchsize);
indices[index + 1] = indices[index] + patchsize;
indices[index + 2] = indices[index + 1] + 1;
indices[index + 3] = indices[index + 1] + 1;
indices[index + 4] = indices[index] + 1;
indices[index + 5] = indices[index];
}
}
indexCount = (patchsize - 1) * (patchsize - 1) * 6;
indexBufferSize = (w * w * 6) * sizeof(uint32_t);
break;
}
// Indices for quad patches (tessellation)
case topologyQuads:
{
indices = new uint32_t[w * w * 4];
for (uint32_t x = 0; x < w; x++)
{
for (uint32_t y = 0; y < w; y++)
{
uint32_t index = (x + y * w) * 4;
indices[index] = (x + y * patchsize);
indices[index + 1] = indices[index] + patchsize;
indices[index + 2] = indices[index + 1] + 1;
indices[index + 3] = indices[index] + 1;
}
}
indexCount = (patchsize - 1) * (patchsize - 1) * 4;
indexBufferSize = (w * w * 4) * sizeof(uint32_t);
break;
}
}
assert(indexBufferSize > 0);
vertexBufferSize = (patchsize * patchsize * 4) * sizeof(Vertex);
// Generate Vulkan buffers
vks::Buffer vertexStaging, indexStaging;
// Create staging buffers
device->createBuffer(
VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
&vertexStaging,
vertexBufferSize,
vertices);
device->createBuffer(
VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
&indexStaging,
indexBufferSize,
indices);
// Device local (target) buffer
device->createBuffer(
VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT,
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
&vertexBuffer,
vertexBufferSize);
device->createBuffer(
VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT,
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
&indexBuffer,
indexBufferSize);
// Copy from staging buffers
VkCommandBuffer copyCmd = device->createCommandBuffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true);
VkBufferCopy copyRegion = {};
copyRegion.size = vertexBufferSize;
vkCmdCopyBuffer(
copyCmd,
vertexStaging.buffer,
vertexBuffer.buffer,
1,
&copyRegion);
copyRegion.size = indexBufferSize;
vkCmdCopyBuffer(
copyCmd,
indexStaging.buffer,
indexBuffer.buffer,
1,
&copyRegion);
device->flushCommandBuffer(copyCmd, copyQueue, true);
vkDestroyBuffer(device->logicalDevice, vertexStaging.buffer, nullptr);
vkFreeMemory(device->logicalDevice, vertexStaging.memory, nullptr);
vkDestroyBuffer(device->logicalDevice, indexStaging.buffer, nullptr);
vkFreeMemory(device->logicalDevice, indexStaging.memory, nullptr);
}
};
}

View File

@ -17,11 +17,9 @@
#include <vector>
#include <vulkan/vulkan.h>
#include "macros.h"
#include "VulkanTools.h"
#ifdef __ANDROID__
#include "VulkanAndroid.h"
#endif
typedef struct _SwapChainBuffers {
VkImage image;

View File

@ -20,7 +20,7 @@
#include "VulkanBuffer.h"
#include "VulkanDevice.hpp"
#include "VulkanTools.h"
//#include "VulkanTools.h"
#if defined(__ANDROID__)
# include <android/asset_manager.h>

View File

@ -0,0 +1,630 @@
/*
* Vulkan texture loader
*
* Copyright(C) 2016-2017 by Sascha Willems - www.saschawillems.de
*
* This code is licensed under the MIT license(MIT) (http://opensource.org/licenses/MIT)
*/
#pragma once
#include <stdlib.h>
#include <string>
#include <fstream>
#include <vector>
#include "vulkan/vulkan.h"
#include "VulkanTools.h"
#include "VulkanDevice.hpp"
#define GLM_ENABLE_EXPERIMENTAL
#include <gli/gli.hpp>
namespace vks
{
class Texture {
public:
vks::VulkanDevice *device;
VkImage image = VK_NULL_HANDLE;
VkImageLayout imageLayout;
VkDeviceMemory deviceMemory;
VkImageView view;
uint32_t width, height;
uint32_t mipLevels;
uint32_t layerCount;
VkDescriptorImageInfo descriptor;
VkSampler sampler;
void updateDescriptor()
{
descriptor.sampler = sampler;
descriptor.imageView = view;
descriptor.imageLayout = imageLayout;
}
void destroy()
{
vkDestroyImageView(device->logicalDevice, view, nullptr);
vkDestroyImage(device->logicalDevice, image, nullptr);
if (sampler)
{
vkDestroySampler(device->logicalDevice, sampler, nullptr);
}
vkFreeMemory(device->logicalDevice, deviceMemory, nullptr);
}
};
class Texture2D : public Texture {
public:
void loadFromFile(
std::string filename,
VkFormat format,
vks::VulkanDevice *device,
VkQueue copyQueue,
VkImageUsageFlags imageUsageFlags = VK_IMAGE_USAGE_SAMPLED_BIT,
VkImageLayout imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL)
{
gli::texture2d tex2D(gli::load(filename.c_str()));
assert(!tex2D.empty());
this->device = device;
width = static_cast<uint32_t>(tex2D[0].extent().x);
height = static_cast<uint32_t>(tex2D[0].extent().y);
mipLevels = static_cast<uint32_t>(tex2D.levels());
// Get device properites for the requested texture format
VkFormatProperties formatProperties;
vkGetPhysicalDeviceFormatProperties(device->physicalDevice, format, &formatProperties);
VkMemoryAllocateInfo memAllocInfo{};
memAllocInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
VkMemoryRequirements memReqs;
// Use a separate command buffer for texture loading
VkCommandBuffer copyCmd = device->createCommandBuffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true);
// Create a host-visible staging buffer that contains the raw image data
VkBuffer stagingBuffer;
VkDeviceMemory stagingMemory;
VkBufferCreateInfo bufferCreateInfo{};
bufferCreateInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
bufferCreateInfo.size = tex2D.size();
// This buffer is used as a transfer source for the buffer copy
bufferCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT;
bufferCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
VK_CHECK_RESULT(vkCreateBuffer(device->logicalDevice, &bufferCreateInfo, nullptr, &stagingBuffer));
// Get memory requirements for the staging buffer (alignment, memory type bits)
vkGetBufferMemoryRequirements(device->logicalDevice, stagingBuffer, &memReqs);
memAllocInfo.allocationSize = memReqs.size;
// Get memory type index for a host visible buffer
memAllocInfo.memoryTypeIndex = device->getMemoryType(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT);
VK_CHECK_RESULT(vkAllocateMemory(device->logicalDevice, &memAllocInfo, nullptr, &stagingMemory));
VK_CHECK_RESULT(vkBindBufferMemory(device->logicalDevice, stagingBuffer, stagingMemory, 0));
// Copy texture data into staging buffer
uint8_t *data;
VK_CHECK_RESULT(vkMapMemory(device->logicalDevice, stagingMemory, 0, memReqs.size, 0, (void **)&data));
memcpy(data, tex2D.data(), tex2D.size());
vkUnmapMemory(device->logicalDevice, stagingMemory);
// Setup buffer copy regions for each mip level
std::vector<VkBufferImageCopy> bufferCopyRegions;
uint32_t offset = 0;
for (uint32_t i = 0; i < mipLevels; i++)
{
VkBufferImageCopy bufferCopyRegion = {};
bufferCopyRegion.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
bufferCopyRegion.imageSubresource.mipLevel = i;
bufferCopyRegion.imageSubresource.baseArrayLayer = 0;
bufferCopyRegion.imageSubresource.layerCount = 1;
bufferCopyRegion.imageExtent.width = static_cast<uint32_t>(tex2D[i].extent().x);
bufferCopyRegion.imageExtent.height = static_cast<uint32_t>(tex2D[i].extent().y);
bufferCopyRegion.imageExtent.depth = 1;
bufferCopyRegion.bufferOffset = offset;
bufferCopyRegions.push_back(bufferCopyRegion);
offset += static_cast<uint32_t>(tex2D[i].size());
}
// Create optimal tiled target image
VkImageCreateInfo imageCreateInfo{};
imageCreateInfo.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
imageCreateInfo.imageType = VK_IMAGE_TYPE_2D;
imageCreateInfo.format = format;
imageCreateInfo.mipLevels = mipLevels;
imageCreateInfo.arrayLayers = 1;
imageCreateInfo.samples = VK_SAMPLE_COUNT_1_BIT;
imageCreateInfo.tiling = VK_IMAGE_TILING_OPTIMAL;
imageCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
imageCreateInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
imageCreateInfo.extent = { width, height, 1 };
imageCreateInfo.usage = imageUsageFlags;
// Ensure that the TRANSFER_DST bit is set for staging
if (!(imageCreateInfo.usage & VK_IMAGE_USAGE_TRANSFER_DST_BIT))
{
imageCreateInfo.usage |= VK_IMAGE_USAGE_TRANSFER_DST_BIT;
}
VK_CHECK_RESULT(vkCreateImage(device->logicalDevice, &imageCreateInfo, nullptr, &image));
vkGetImageMemoryRequirements(device->logicalDevice, image, &memReqs);
memAllocInfo.allocationSize = memReqs.size;
memAllocInfo.memoryTypeIndex = device->getMemoryType(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT);
VK_CHECK_RESULT(vkAllocateMemory(device->logicalDevice, &memAllocInfo, nullptr, &deviceMemory));
VK_CHECK_RESULT(vkBindImageMemory(device->logicalDevice, image, deviceMemory, 0));
VkImageSubresourceRange subresourceRange = {};
subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
subresourceRange.baseMipLevel = 0;
subresourceRange.levelCount = mipLevels;
subresourceRange.layerCount = 1;
// Image barrier for optimal image (target)
// Optimal image will be used as destination for the copy
{
VkImageMemoryBarrier imageMemoryBarrier{};
imageMemoryBarrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
imageMemoryBarrier.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED;
imageMemoryBarrier.newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
imageMemoryBarrier.srcAccessMask = 0;
imageMemoryBarrier.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
imageMemoryBarrier.image = image;
imageMemoryBarrier.subresourceRange = subresourceRange;
vkCmdPipelineBarrier(copyCmd, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, 0, 0, nullptr, 0, nullptr, 1, &imageMemoryBarrier);
}
// Copy mip levels from staging buffer
vkCmdCopyBufferToImage(
copyCmd,
stagingBuffer,
image,
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
static_cast<uint32_t>(bufferCopyRegions.size()),
bufferCopyRegions.data()
);
// Change texture image layout to shader read after all mip levels have been copied
this->imageLayout = imageLayout;
{
VkImageMemoryBarrier imageMemoryBarrier{};
imageMemoryBarrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
imageMemoryBarrier.oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
imageMemoryBarrier.newLayout = imageLayout;
imageMemoryBarrier.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
imageMemoryBarrier.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT;
imageMemoryBarrier.image = image;
imageMemoryBarrier.subresourceRange = subresourceRange;
vkCmdPipelineBarrier(copyCmd, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, 0, 0, nullptr, 0, nullptr, 1, &imageMemoryBarrier);
}
device->flushCommandBuffer(copyCmd, copyQueue);
// Clean up staging resources
vkFreeMemory(device->logicalDevice, stagingMemory, nullptr);
vkDestroyBuffer(device->logicalDevice, stagingBuffer, nullptr);
VkSamplerCreateInfo samplerCreateInfo{};
samplerCreateInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
samplerCreateInfo.magFilter = VK_FILTER_LINEAR;
samplerCreateInfo.minFilter = VK_FILTER_LINEAR;
samplerCreateInfo.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR;
samplerCreateInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_REPEAT;
samplerCreateInfo.addressModeV = VK_SAMPLER_ADDRESS_MODE_REPEAT;
samplerCreateInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_REPEAT;
samplerCreateInfo.mipLodBias = 0.0f;
samplerCreateInfo.compareOp = VK_COMPARE_OP_NEVER;
samplerCreateInfo.minLod = 0.0f;
samplerCreateInfo.maxLod = (float)mipLevels;
samplerCreateInfo.maxAnisotropy = device->enabledFeatures.samplerAnisotropy ? device->properties.limits.maxSamplerAnisotropy : 1.0f;
samplerCreateInfo.anisotropyEnable = device->enabledFeatures.samplerAnisotropy;
samplerCreateInfo.borderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE;
VK_CHECK_RESULT(vkCreateSampler(device->logicalDevice, &samplerCreateInfo, nullptr, &sampler));
VkImageViewCreateInfo viewCreateInfo{};
viewCreateInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
viewCreateInfo.viewType = VK_IMAGE_VIEW_TYPE_2D;
viewCreateInfo.format = format;
viewCreateInfo.components = { VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B, VK_COMPONENT_SWIZZLE_A };
viewCreateInfo.subresourceRange = { VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 };
viewCreateInfo.subresourceRange.levelCount = mipLevels;
viewCreateInfo.image = image;
VK_CHECK_RESULT(vkCreateImageView(device->logicalDevice, &viewCreateInfo, nullptr, &view));
updateDescriptor();
}
void loadFromBuffer(
void* buffer,
VkDeviceSize bufferSize,
VkFormat format,
uint32_t width,
uint32_t height,
vks::VulkanDevice *device,
VkQueue copyQueue,
VkFilter filter = VK_FILTER_LINEAR,
VkImageUsageFlags imageUsageFlags = VK_IMAGE_USAGE_SAMPLED_BIT,
VkImageLayout imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL)
{
assert(buffer);
this->device = device;
width = width;
height = height;
mipLevels = 1;
VkMemoryAllocateInfo memAllocInfo{};
memAllocInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
VkMemoryRequirements memReqs;
// Use a separate command buffer for texture loading
VkCommandBuffer copyCmd = device->createCommandBuffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true);
// Create a host-visible staging buffer that contains the raw image data
VkBuffer stagingBuffer;
VkDeviceMemory stagingMemory;
VkBufferCreateInfo bufferCreateInfo{};
bufferCreateInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
bufferCreateInfo.size = bufferSize;
// This buffer is used as a transfer source for the buffer copy
bufferCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT;
bufferCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
VK_CHECK_RESULT(vkCreateBuffer(device->logicalDevice, &bufferCreateInfo, nullptr, &stagingBuffer));
// Get memory requirements for the staging buffer (alignment, memory type bits)
vkGetBufferMemoryRequirements(device->logicalDevice, stagingBuffer, &memReqs);
memAllocInfo.allocationSize = memReqs.size;
// Get memory type index for a host visible buffer
memAllocInfo.memoryTypeIndex = device->getMemoryType(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT);
VK_CHECK_RESULT(vkAllocateMemory(device->logicalDevice, &memAllocInfo, nullptr, &stagingMemory));
VK_CHECK_RESULT(vkBindBufferMemory(device->logicalDevice, stagingBuffer, stagingMemory, 0));
// Copy texture data into staging buffer
uint8_t *data;
VK_CHECK_RESULT(vkMapMemory(device->logicalDevice, stagingMemory, 0, memReqs.size, 0, (void **)&data));
memcpy(data, buffer, bufferSize);
vkUnmapMemory(device->logicalDevice, stagingMemory);
VkBufferImageCopy bufferCopyRegion = {};
bufferCopyRegion.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
bufferCopyRegion.imageSubresource.mipLevel = 0;
bufferCopyRegion.imageSubresource.baseArrayLayer = 0;
bufferCopyRegion.imageSubresource.layerCount = 1;
bufferCopyRegion.imageExtent.width = width;
bufferCopyRegion.imageExtent.height = height;
bufferCopyRegion.imageExtent.depth = 1;
bufferCopyRegion.bufferOffset = 0;
// Create optimal tiled target image
VkImageCreateInfo imageCreateInfo{};
imageCreateInfo.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
imageCreateInfo.imageType = VK_IMAGE_TYPE_2D;
imageCreateInfo.format = format;
imageCreateInfo.mipLevels = mipLevels;
imageCreateInfo.arrayLayers = 1;
imageCreateInfo.samples = VK_SAMPLE_COUNT_1_BIT;
imageCreateInfo.tiling = VK_IMAGE_TILING_OPTIMAL;
imageCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
imageCreateInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
imageCreateInfo.extent = { width, height, 1 };
imageCreateInfo.usage = imageUsageFlags;
// Ensure that the TRANSFER_DST bit is set for staging
if (!(imageCreateInfo.usage & VK_IMAGE_USAGE_TRANSFER_DST_BIT))
{
imageCreateInfo.usage |= VK_IMAGE_USAGE_TRANSFER_DST_BIT;
}
VK_CHECK_RESULT(vkCreateImage(device->logicalDevice, &imageCreateInfo, nullptr, &image));
vkGetImageMemoryRequirements(device->logicalDevice, image, &memReqs);
memAllocInfo.allocationSize = memReqs.size;
memAllocInfo.memoryTypeIndex = device->getMemoryType(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT);
VK_CHECK_RESULT(vkAllocateMemory(device->logicalDevice, &memAllocInfo, nullptr, &deviceMemory));
VK_CHECK_RESULT(vkBindImageMemory(device->logicalDevice, image, deviceMemory, 0));
VkImageSubresourceRange subresourceRange = {};
subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
subresourceRange.baseMipLevel = 0;
subresourceRange.levelCount = mipLevels;
subresourceRange.layerCount = 1;
{
VkImageMemoryBarrier imageMemoryBarrier{};
imageMemoryBarrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
imageMemoryBarrier.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED;
imageMemoryBarrier.newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
imageMemoryBarrier.srcAccessMask = 0;
imageMemoryBarrier.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
imageMemoryBarrier.image = image;
imageMemoryBarrier.subresourceRange = subresourceRange;
vkCmdPipelineBarrier(copyCmd, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, 0, 0, nullptr, 0, nullptr, 1, &imageMemoryBarrier);
}
vkCmdCopyBufferToImage(
copyCmd,
stagingBuffer,
image,
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
1,
&bufferCopyRegion
);
this->imageLayout = imageLayout;
{
VkImageMemoryBarrier imageMemoryBarrier{};
imageMemoryBarrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
imageMemoryBarrier.oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
imageMemoryBarrier.newLayout = imageLayout;
imageMemoryBarrier.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
imageMemoryBarrier.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT;
imageMemoryBarrier.image = image;
imageMemoryBarrier.subresourceRange = subresourceRange;
vkCmdPipelineBarrier(copyCmd, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, 0, 0, nullptr, 0, nullptr, 1, &imageMemoryBarrier);
}
device->flushCommandBuffer(copyCmd, copyQueue);
// Clean up staging resources
vkFreeMemory(device->logicalDevice, stagingMemory, nullptr);
vkDestroyBuffer(device->logicalDevice, stagingBuffer, nullptr);
// Create sampler
VkSamplerCreateInfo samplerCreateInfo = {};
samplerCreateInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
samplerCreateInfo.magFilter = filter;
samplerCreateInfo.minFilter = filter;
samplerCreateInfo.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR;
samplerCreateInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_REPEAT;
samplerCreateInfo.addressModeV = VK_SAMPLER_ADDRESS_MODE_REPEAT;
samplerCreateInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_REPEAT;
samplerCreateInfo.mipLodBias = 0.0f;
samplerCreateInfo.compareOp = VK_COMPARE_OP_NEVER;
samplerCreateInfo.minLod = 0.0f;
samplerCreateInfo.maxLod = 0.0f;
samplerCreateInfo.maxAnisotropy = 1.0f;
VK_CHECK_RESULT(vkCreateSampler(device->logicalDevice, &samplerCreateInfo, nullptr, &sampler));
// Create image view
VkImageViewCreateInfo viewCreateInfo = {};
viewCreateInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
viewCreateInfo.pNext = NULL;
viewCreateInfo.viewType = VK_IMAGE_VIEW_TYPE_2D;
viewCreateInfo.format = format;
viewCreateInfo.components = { VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B, VK_COMPONENT_SWIZZLE_A };
viewCreateInfo.subresourceRange = { VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 };
viewCreateInfo.subresourceRange.levelCount = 1;
viewCreateInfo.image = image;
VK_CHECK_RESULT(vkCreateImageView(device->logicalDevice, &viewCreateInfo, nullptr, &view));
// Update descriptor image info member that can be used for setting up descriptor sets
updateDescriptor();
}
};
class TextureCubeMap : public Texture {
public:
void loadFromFile(
std::string filename,
VkFormat format,
vks::VulkanDevice *device,
VkQueue copyQueue,
VkImageUsageFlags imageUsageFlags = VK_IMAGE_USAGE_SAMPLED_BIT,
VkImageLayout imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL)
{
#if defined(__ANDROID__)
// Textures are stored inside the apk on Android (compressed)
// So they need to be loaded via the asset manager
AAsset* asset = AAssetManager_open(androidApp->activity->assetManager, filename.c_str(), AASSET_MODE_STREAMING);
if (!asset) {
LOGE("Could not load texture %s", filename.c_str());
exit(-1);
}
size_t size = AAsset_getLength(asset);
assert(size > 0);
void *textureData = malloc(size);
AAsset_read(asset, textureData, size);
AAsset_close(asset);
gli::texture_cube texCube(gli::load((const char*)textureData, size));
free(textureData);
#else
gli::texture_cube texCube(gli::load(filename));
#endif
assert(!texCube.empty());
this->device = device;
width = static_cast<uint32_t>(texCube.extent().x);
height = static_cast<uint32_t>(texCube.extent().y);
mipLevels = static_cast<uint32_t>(texCube.levels());
VkMemoryAllocateInfo memAllocInfo{};
memAllocInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
VkMemoryRequirements memReqs;
// Create a host-visible staging buffer that contains the raw image data
VkBuffer stagingBuffer;
VkDeviceMemory stagingMemory;
VkBufferCreateInfo bufferCreateInfo{};
bufferCreateInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
bufferCreateInfo.size = texCube.size();
// This buffer is used as a transfer source for the buffer copy
bufferCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT;
bufferCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
VK_CHECK_RESULT(vkCreateBuffer(device->logicalDevice, &bufferCreateInfo, nullptr, &stagingBuffer));
// Get memory requirements for the staging buffer (alignment, memory type bits)
vkGetBufferMemoryRequirements(device->logicalDevice, stagingBuffer, &memReqs);
memAllocInfo.allocationSize = memReqs.size;
// Get memory type index for a host visible buffer
memAllocInfo.memoryTypeIndex = device->getMemoryType(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT);
VK_CHECK_RESULT(vkAllocateMemory(device->logicalDevice, &memAllocInfo, nullptr, &stagingMemory));
VK_CHECK_RESULT(vkBindBufferMemory(device->logicalDevice, stagingBuffer, stagingMemory, 0));
// Copy texture data into staging buffer
uint8_t *data;
VK_CHECK_RESULT(vkMapMemory(device->logicalDevice, stagingMemory, 0, memReqs.size, 0, (void **)&data));
memcpy(data, texCube.data(), texCube.size());
vkUnmapMemory(device->logicalDevice, stagingMemory);
// Setup buffer copy regions for each face including all of it's miplevels
std::vector<VkBufferImageCopy> bufferCopyRegions;
size_t offset = 0;
for (uint32_t face = 0; face < 6; face++) {
for (uint32_t level = 0; level < mipLevels; level++) {
VkBufferImageCopy bufferCopyRegion = {};
bufferCopyRegion.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
bufferCopyRegion.imageSubresource.mipLevel = level;
bufferCopyRegion.imageSubresource.baseArrayLayer = face;
bufferCopyRegion.imageSubresource.layerCount = 1;
bufferCopyRegion.imageExtent.width = static_cast<uint32_t>(texCube[face][level].extent().x);
bufferCopyRegion.imageExtent.height = static_cast<uint32_t>(texCube[face][level].extent().y);
bufferCopyRegion.imageExtent.depth = 1;
bufferCopyRegion.bufferOffset = offset;
bufferCopyRegions.push_back(bufferCopyRegion);
// Increase offset into staging buffer for next level / face
offset += texCube[face][level].size();
}
}
// Create optimal tiled target image
VkImageCreateInfo imageCreateInfo{};
imageCreateInfo.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
imageCreateInfo.imageType = VK_IMAGE_TYPE_2D;
imageCreateInfo.format = format;
imageCreateInfo.mipLevels = mipLevels;
imageCreateInfo.samples = VK_SAMPLE_COUNT_1_BIT;
imageCreateInfo.tiling = VK_IMAGE_TILING_OPTIMAL;
imageCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
imageCreateInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
imageCreateInfo.extent = { width, height, 1 };
imageCreateInfo.usage = imageUsageFlags;
// Ensure that the TRANSFER_DST bit is set for staging
if (!(imageCreateInfo.usage & VK_IMAGE_USAGE_TRANSFER_DST_BIT)) {
imageCreateInfo.usage |= VK_IMAGE_USAGE_TRANSFER_DST_BIT;
}
// Cube faces count as array layers in Vulkan
imageCreateInfo.arrayLayers = 6;
// This flag is required for cube map images
imageCreateInfo.flags = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT;
VK_CHECK_RESULT(vkCreateImage(device->logicalDevice, &imageCreateInfo, nullptr, &image));
vkGetImageMemoryRequirements(device->logicalDevice, image, &memReqs);
memAllocInfo.allocationSize = memReqs.size;
memAllocInfo.memoryTypeIndex = device->getMemoryType(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT);
VK_CHECK_RESULT(vkAllocateMemory(device->logicalDevice, &memAllocInfo, nullptr, &deviceMemory));
VK_CHECK_RESULT(vkBindImageMemory(device->logicalDevice, image, deviceMemory, 0));
// Use a separate command buffer for texture loading
VkCommandBuffer copyCmd = device->createCommandBuffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true);
// Image barrier for optimal image (target)
// Set initial layout for all array layers (faces) of the optimal (target) tiled texture
VkImageSubresourceRange subresourceRange = {};
subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
subresourceRange.baseMipLevel = 0;
subresourceRange.levelCount = mipLevels;
subresourceRange.layerCount = 6;
{
VkImageMemoryBarrier imageMemoryBarrier{};
imageMemoryBarrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
imageMemoryBarrier.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED;
imageMemoryBarrier.newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
imageMemoryBarrier.srcAccessMask = 0;
imageMemoryBarrier.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
imageMemoryBarrier.image = image;
imageMemoryBarrier.subresourceRange = subresourceRange;
vkCmdPipelineBarrier(copyCmd, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, 0, 0, nullptr, 0, nullptr, 1, &imageMemoryBarrier);
}
// Copy the cube map faces from the staging buffer to the optimal tiled image
vkCmdCopyBufferToImage(
copyCmd,
stagingBuffer,
image,
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
static_cast<uint32_t>(bufferCopyRegions.size()),
bufferCopyRegions.data());
// Change texture image layout to shader read after all faces have been copied
this->imageLayout = imageLayout;
{
VkImageMemoryBarrier imageMemoryBarrier{};
imageMemoryBarrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
imageMemoryBarrier.oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
imageMemoryBarrier.newLayout = imageLayout;
imageMemoryBarrier.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
imageMemoryBarrier.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT;
imageMemoryBarrier.image = image;
imageMemoryBarrier.subresourceRange = subresourceRange;
vkCmdPipelineBarrier(copyCmd, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, 0, 0, nullptr, 0, nullptr, 1, &imageMemoryBarrier);
}
device->flushCommandBuffer(copyCmd, copyQueue);
// Create sampler
VkSamplerCreateInfo samplerCreateInfo{};
samplerCreateInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
samplerCreateInfo.magFilter = VK_FILTER_LINEAR;
samplerCreateInfo.minFilter = VK_FILTER_LINEAR;
samplerCreateInfo.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR;
samplerCreateInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
samplerCreateInfo.addressModeV = samplerCreateInfo.addressModeU;
samplerCreateInfo.addressModeW = samplerCreateInfo.addressModeU;
samplerCreateInfo.mipLodBias = 0.0f;
samplerCreateInfo.maxAnisotropy = device->enabledFeatures.samplerAnisotropy ? device->properties.limits.maxSamplerAnisotropy : 1.0f;
samplerCreateInfo.anisotropyEnable = device->enabledFeatures.samplerAnisotropy;
samplerCreateInfo.compareOp = VK_COMPARE_OP_NEVER;
samplerCreateInfo.minLod = 0.0f;
samplerCreateInfo.maxLod = (float)mipLevels;
samplerCreateInfo.borderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE;
VK_CHECK_RESULT(vkCreateSampler(device->logicalDevice, &samplerCreateInfo, nullptr, &sampler));
// Create image view
VkImageViewCreateInfo viewCreateInfo{};
viewCreateInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
viewCreateInfo.viewType = VK_IMAGE_VIEW_TYPE_CUBE;
viewCreateInfo.format = format;
viewCreateInfo.components = { VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B, VK_COMPONENT_SWIZZLE_A };
viewCreateInfo.subresourceRange = { VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 };
viewCreateInfo.subresourceRange.layerCount = 6;
viewCreateInfo.subresourceRange.levelCount = mipLevels;
viewCreateInfo.image = image;
VK_CHECK_RESULT(vkCreateImageView(device->logicalDevice, &viewCreateInfo, nullptr, &view));
// Clean up staging resources
vkFreeMemory(device->logicalDevice, stagingMemory, nullptr);
vkDestroyBuffer(device->logicalDevice, stagingBuffer, nullptr);
// Update descriptor image info member that can be used for setting up descriptor sets
updateDescriptor();
}
};
}

View File

@ -17,11 +17,13 @@ const std::string getAssetPath()
#elif defined(VK_EXAMPLE_DATA_DIR)
return VK_EXAMPLE_DATA_DIR;
#else
return "../../data";
return "./../data/";
#endif
}
#endif
namespace vks
{
namespace tools

View File

@ -60,6 +60,24 @@
}
#endif
#define GET_INSTANCE_PROC_ADDR(inst, entrypoint) \
{ \
fp##entrypoint = reinterpret_cast<PFN_vk##entrypoint>(vkGetInstanceProcAddr(inst, "vk"#entrypoint)); \
if (fp##entrypoint == NULL) \
{ \
exit(1); \
} \
}
#define GET_DEVICE_PROC_ADDR(dev, entrypoint) \
{ \
fp##entrypoint = reinterpret_cast<PFN_vk##entrypoint>(vkGetDeviceProcAddr(dev, "vk"#entrypoint)); \
if (fp##entrypoint == NULL) \
{ \
exit(1); \
} \
}
const std::string getAssetPath();
namespace vks

View File

@ -1,517 +0,0 @@
/*
* UI overlay class using ImGui
*
* Copyright (C) 2017 by Sascha Willems - www.saschawillems.de
*
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
*/
#include "VulkanUIOverlay.h"
namespace vks
{
UIOverlay::UIOverlay()
{
#if defined(__ANDROID__)
if (vks::android::screenDensity >= ACONFIGURATION_DENSITY_XXHIGH) {
scale = 3.5f;
}
else if (vks::android::screenDensity >= ACONFIGURATION_DENSITY_XHIGH) {
scale = 2.5f;
}
else if (vks::android::screenDensity >= ACONFIGURATION_DENSITY_HIGH) {
scale = 2.0f;
};
#endif
// Init ImGui
ImGui::CreateContext();
// Color scheme
ImGuiStyle& style = ImGui::GetStyle();
style.Colors[ImGuiCol_TitleBg] = ImVec4(1.0f, 0.0f, 0.0f, 1.0f);
style.Colors[ImGuiCol_TitleBgActive] = ImVec4(1.0f, 0.0f, 0.0f, 1.0f);
style.Colors[ImGuiCol_TitleBgCollapsed] = ImVec4(1.0f, 0.0f, 0.0f, 0.1f);
style.Colors[ImGuiCol_MenuBarBg] = ImVec4(1.0f, 0.0f, 0.0f, 0.4f);
style.Colors[ImGuiCol_Header] = ImVec4(0.8f, 0.0f, 0.0f, 0.4f);
style.Colors[ImGuiCol_HeaderActive] = ImVec4(1.0f, 0.0f, 0.0f, 0.4f);
style.Colors[ImGuiCol_HeaderHovered] = ImVec4(1.0f, 0.0f, 0.0f, 0.4f);
style.Colors[ImGuiCol_FrameBg] = ImVec4(0.0f, 0.0f, 0.0f, 0.8f);
style.Colors[ImGuiCol_CheckMark] = ImVec4(1.0f, 0.0f, 0.0f, 0.8f);
style.Colors[ImGuiCol_SliderGrab] = ImVec4(1.0f, 0.0f, 0.0f, 0.4f);
style.Colors[ImGuiCol_SliderGrabActive] = ImVec4(1.0f, 0.0f, 0.0f, 0.8f);
style.Colors[ImGuiCol_FrameBgHovered] = ImVec4(1.0f, 1.0f, 1.0f, 0.1f);
style.Colors[ImGuiCol_FrameBgActive] = ImVec4(1.0f, 1.0f, 1.0f, 0.2f);
style.Colors[ImGuiCol_Button] = ImVec4(1.0f, 0.0f, 0.0f, 0.4f);
style.Colors[ImGuiCol_ButtonHovered] = ImVec4(1.0f, 0.0f, 0.0f, 0.6f);
style.Colors[ImGuiCol_ButtonActive] = ImVec4(1.0f, 0.0f, 0.0f, 0.8f);
// Dimensions
ImGuiIO& io = ImGui::GetIO();
io.FontGlobalScale = scale;
}
UIOverlay::~UIOverlay() {
if (ImGui::GetCurrentContext()) {
ImGui::DestroyContext();
}
}
/** Prepare all vulkan resources required to render the UI overlay */
void UIOverlay::prepareResources()
{
ImGuiIO& io = ImGui::GetIO();
// Create font texture
unsigned char* fontData;
int texWidth, texHeight;
#if defined(__ANDROID__)
float scale = (float)vks::android::screenDensity / (float)ACONFIGURATION_DENSITY_MEDIUM;
AAsset* asset = AAssetManager_open(androidApp->activity->assetManager, "Roboto-Medium.ttf", AASSET_MODE_STREAMING);
if (asset) {
size_t size = AAsset_getLength(asset);
assert(size > 0);
char *fontAsset = new char[size];
AAsset_read(asset, fontAsset, size);
AAsset_close(asset);
io.Fonts->AddFontFromMemoryTTF(fontAsset, size, 14.0f * scale);
delete[] fontAsset;
}
#else
const std::string filename = getAssetPath() + "Roboto-Medium.ttf";
io.Fonts->AddFontFromFileTTF(filename.c_str(), 16.0f * scale);
#endif
io.Fonts->GetTexDataAsRGBA32(&fontData, &texWidth, &texHeight);
VkDeviceSize uploadSize = texWidth*texHeight * 4 * sizeof(char);
//SRS - Set ImGui style scale factor to handle retina and other HiDPI displays (same as font scaling above)
ImGuiStyle& style = ImGui::GetStyle();
style.ScaleAllSizes(scale);
// Create target image for copy
VkImageCreateInfo imageInfo = vks::initializers::imageCreateInfo();
imageInfo.imageType = VK_IMAGE_TYPE_2D;
imageInfo.format = VK_FORMAT_R8G8B8A8_UNORM;
imageInfo.extent.width = texWidth;
imageInfo.extent.height = texHeight;
imageInfo.extent.depth = 1;
imageInfo.mipLevels = 1;
imageInfo.arrayLayers = 1;
imageInfo.samples = VK_SAMPLE_COUNT_1_BIT;
imageInfo.tiling = VK_IMAGE_TILING_OPTIMAL;
imageInfo.usage = VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
imageInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
imageInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
VK_CHECK_RESULT(vkCreateImage(device->logicalDevice, &imageInfo, nullptr, &fontImage));
VkMemoryRequirements memReqs;
vkGetImageMemoryRequirements(device->logicalDevice, fontImage, &memReqs);
VkMemoryAllocateInfo memAllocInfo = vks::initializers::memoryAllocateInfo();
memAllocInfo.allocationSize = memReqs.size;
memAllocInfo.memoryTypeIndex = device->getMemoryType(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT);
VK_CHECK_RESULT(vkAllocateMemory(device->logicalDevice, &memAllocInfo, nullptr, &fontMemory));
VK_CHECK_RESULT(vkBindImageMemory(device->logicalDevice, fontImage, fontMemory, 0));
// Image view
VkImageViewCreateInfo viewInfo = vks::initializers::imageViewCreateInfo();
viewInfo.image = fontImage;
viewInfo.viewType = VK_IMAGE_VIEW_TYPE_2D;
viewInfo.format = VK_FORMAT_R8G8B8A8_UNORM;
viewInfo.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
viewInfo.subresourceRange.levelCount = 1;
viewInfo.subresourceRange.layerCount = 1;
VK_CHECK_RESULT(vkCreateImageView(device->logicalDevice, &viewInfo, nullptr, &fontView));
// Staging buffers for font data upload
vks::Buffer stagingBuffer;
VK_CHECK_RESULT(device->createBuffer(
VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
&stagingBuffer,
uploadSize));
stagingBuffer.map();
memcpy(stagingBuffer.mapped, fontData, uploadSize);
stagingBuffer.unmap();
// Copy buffer data to font image
VkCommandBuffer copyCmd = device->createCommandBuffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true);
// Prepare for transfer
vks::tools::setImageLayout(
copyCmd,
fontImage,
VK_IMAGE_ASPECT_COLOR_BIT,
VK_IMAGE_LAYOUT_UNDEFINED,
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
VK_PIPELINE_STAGE_HOST_BIT,
VK_PIPELINE_STAGE_TRANSFER_BIT);
// Copy
VkBufferImageCopy bufferCopyRegion = {};
bufferCopyRegion.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
bufferCopyRegion.imageSubresource.layerCount = 1;
bufferCopyRegion.imageExtent.width = texWidth;
bufferCopyRegion.imageExtent.height = texHeight;
bufferCopyRegion.imageExtent.depth = 1;
vkCmdCopyBufferToImage(
copyCmd,
stagingBuffer.buffer,
fontImage,
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
1,
&bufferCopyRegion
);
// Prepare for shader read
vks::tools::setImageLayout(
copyCmd,
fontImage,
VK_IMAGE_ASPECT_COLOR_BIT,
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
VK_PIPELINE_STAGE_TRANSFER_BIT,
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT);
device->flushCommandBuffer(copyCmd, queue, true);
stagingBuffer.destroy();
// Font texture Sampler
VkSamplerCreateInfo samplerInfo = vks::initializers::samplerCreateInfo();
samplerInfo.magFilter = VK_FILTER_LINEAR;
samplerInfo.minFilter = VK_FILTER_LINEAR;
samplerInfo.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR;
samplerInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
samplerInfo.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
samplerInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
samplerInfo.borderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE;
VK_CHECK_RESULT(vkCreateSampler(device->logicalDevice, &samplerInfo, nullptr, &sampler));
// Descriptor pool
std::vector<VkDescriptorPoolSize> poolSizes = {
vks::initializers::descriptorPoolSize(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1)
};
VkDescriptorPoolCreateInfo descriptorPoolInfo = vks::initializers::descriptorPoolCreateInfo(poolSizes, 2);
VK_CHECK_RESULT(vkCreateDescriptorPool(device->logicalDevice, &descriptorPoolInfo, nullptr, &descriptorPool));
// Descriptor set layout
std::vector<VkDescriptorSetLayoutBinding> setLayoutBindings = {
vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 0),
};
VkDescriptorSetLayoutCreateInfo descriptorLayout = vks::initializers::descriptorSetLayoutCreateInfo(setLayoutBindings);
VK_CHECK_RESULT(vkCreateDescriptorSetLayout(device->logicalDevice, &descriptorLayout, nullptr, &descriptorSetLayout));
// Descriptor set
VkDescriptorSetAllocateInfo allocInfo = vks::initializers::descriptorSetAllocateInfo(descriptorPool, &descriptorSetLayout, 1);
VK_CHECK_RESULT(vkAllocateDescriptorSets(device->logicalDevice, &allocInfo, &descriptorSet));
VkDescriptorImageInfo fontDescriptor = vks::initializers::descriptorImageInfo(
sampler,
fontView,
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
);
std::vector<VkWriteDescriptorSet> writeDescriptorSets = {
vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 0, &fontDescriptor)
};
vkUpdateDescriptorSets(device->logicalDevice, static_cast<uint32_t>(writeDescriptorSets.size()), writeDescriptorSets.data(), 0, nullptr);
}
/** Prepare a separate pipeline for the UI overlay rendering decoupled from the main application */
void UIOverlay::preparePipeline(const VkPipelineCache pipelineCache, const VkRenderPass renderPass, const VkFormat colorFormat, const VkFormat depthFormat)
{
// Pipeline layout
// Push constants for UI rendering parameters
VkPushConstantRange pushConstantRange = vks::initializers::pushConstantRange(VK_SHADER_STAGE_VERTEX_BIT, sizeof(PushConstBlock), 0);
VkPipelineLayoutCreateInfo pipelineLayoutCreateInfo = vks::initializers::pipelineLayoutCreateInfo(&descriptorSetLayout, 1);
pipelineLayoutCreateInfo.pushConstantRangeCount = 1;
pipelineLayoutCreateInfo.pPushConstantRanges = &pushConstantRange;
VK_CHECK_RESULT(vkCreatePipelineLayout(device->logicalDevice, &pipelineLayoutCreateInfo, nullptr, &pipelineLayout));
// Setup graphics pipeline for UI rendering
VkPipelineInputAssemblyStateCreateInfo inputAssemblyState =
vks::initializers::pipelineInputAssemblyStateCreateInfo(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, 0, VK_FALSE);
VkPipelineRasterizationStateCreateInfo rasterizationState =
vks::initializers::pipelineRasterizationStateCreateInfo(VK_POLYGON_MODE_FILL, VK_CULL_MODE_NONE, VK_FRONT_FACE_COUNTER_CLOCKWISE);
// Enable blending
VkPipelineColorBlendAttachmentState blendAttachmentState{};
blendAttachmentState.blendEnable = VK_TRUE;
blendAttachmentState.colorWriteMask = VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT;
blendAttachmentState.srcColorBlendFactor = VK_BLEND_FACTOR_SRC_ALPHA;
blendAttachmentState.dstColorBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
blendAttachmentState.colorBlendOp = VK_BLEND_OP_ADD;
blendAttachmentState.srcAlphaBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
blendAttachmentState.dstAlphaBlendFactor = VK_BLEND_FACTOR_ZERO;
blendAttachmentState.alphaBlendOp = VK_BLEND_OP_ADD;
VkPipelineColorBlendStateCreateInfo colorBlendState =
vks::initializers::pipelineColorBlendStateCreateInfo(1, &blendAttachmentState);
VkPipelineDepthStencilStateCreateInfo depthStencilState =
vks::initializers::pipelineDepthStencilStateCreateInfo(VK_FALSE, VK_FALSE, VK_COMPARE_OP_ALWAYS);
VkPipelineViewportStateCreateInfo viewportState =
vks::initializers::pipelineViewportStateCreateInfo(1, 1, 0);
VkPipelineMultisampleStateCreateInfo multisampleState =
vks::initializers::pipelineMultisampleStateCreateInfo(rasterizationSamples);
std::vector<VkDynamicState> dynamicStateEnables = {
VK_DYNAMIC_STATE_VIEWPORT,
VK_DYNAMIC_STATE_SCISSOR
};
VkPipelineDynamicStateCreateInfo dynamicState =
vks::initializers::pipelineDynamicStateCreateInfo(dynamicStateEnables);
VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo(pipelineLayout, renderPass);
pipelineCreateInfo.pInputAssemblyState = &inputAssemblyState;
pipelineCreateInfo.pRasterizationState = &rasterizationState;
pipelineCreateInfo.pColorBlendState = &colorBlendState;
pipelineCreateInfo.pMultisampleState = &multisampleState;
pipelineCreateInfo.pViewportState = &viewportState;
pipelineCreateInfo.pDepthStencilState = &depthStencilState;
pipelineCreateInfo.pDynamicState = &dynamicState;
pipelineCreateInfo.stageCount = static_cast<uint32_t>(shaders.size());
pipelineCreateInfo.pStages = shaders.data();
pipelineCreateInfo.subpass = subpass;
#if defined(VK_KHR_dynamic_rendering)
// SRS - if we are using dynamic rendering (i.e. renderPass null), must define color, depth and stencil attachments at pipeline create time
VkPipelineRenderingCreateInfo pipelineRenderingCreateInfo = {};
if (renderPass == VK_NULL_HANDLE) {
pipelineRenderingCreateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO;
pipelineRenderingCreateInfo.colorAttachmentCount = 1;
pipelineRenderingCreateInfo.pColorAttachmentFormats = &colorFormat;
pipelineRenderingCreateInfo.depthAttachmentFormat = depthFormat;
pipelineRenderingCreateInfo.stencilAttachmentFormat = depthFormat;
pipelineCreateInfo.pNext = &pipelineRenderingCreateInfo;
}
#endif
// Vertex bindings an attributes based on ImGui vertex definition
std::vector<VkVertexInputBindingDescription> vertexInputBindings = {
vks::initializers::vertexInputBindingDescription(0, sizeof(ImDrawVert), VK_VERTEX_INPUT_RATE_VERTEX),
};
std::vector<VkVertexInputAttributeDescription> vertexInputAttributes = {
vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32_SFLOAT, offsetof(ImDrawVert, pos)), // Location 0: Position
vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32_SFLOAT, offsetof(ImDrawVert, uv)), // Location 1: UV
vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R8G8B8A8_UNORM, offsetof(ImDrawVert, col)), // Location 0: Color
};
VkPipelineVertexInputStateCreateInfo vertexInputState = vks::initializers::pipelineVertexInputStateCreateInfo();
vertexInputState.vertexBindingDescriptionCount = static_cast<uint32_t>(vertexInputBindings.size());
vertexInputState.pVertexBindingDescriptions = vertexInputBindings.data();
vertexInputState.vertexAttributeDescriptionCount = static_cast<uint32_t>(vertexInputAttributes.size());
vertexInputState.pVertexAttributeDescriptions = vertexInputAttributes.data();
pipelineCreateInfo.pVertexInputState = &vertexInputState;
VK_CHECK_RESULT(vkCreateGraphicsPipelines(device->logicalDevice, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipeline));
}
/** Update vertex and index buffer containing the imGui elements when required */
bool UIOverlay::update()
{
ImDrawData* imDrawData = ImGui::GetDrawData();
bool updateCmdBuffers = false;
if (!imDrawData) { return false; };
// Note: Alignment is done inside buffer creation
VkDeviceSize vertexBufferSize = imDrawData->TotalVtxCount * sizeof(ImDrawVert);
VkDeviceSize indexBufferSize = imDrawData->TotalIdxCount * sizeof(ImDrawIdx);
// Update buffers only if vertex or index count has been changed compared to current buffer size
if ((vertexBufferSize == 0) || (indexBufferSize == 0)) {
return false;
}
// Vertex buffer
if ((vertexBuffer.buffer == VK_NULL_HANDLE) || (vertexCount != imDrawData->TotalVtxCount)) {
vertexBuffer.unmap();
vertexBuffer.destroy();
VK_CHECK_RESULT(device->createBuffer(VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, &vertexBuffer, vertexBufferSize));
vertexCount = imDrawData->TotalVtxCount;
vertexBuffer.unmap();
vertexBuffer.map();
updateCmdBuffers = true;
}
// Index buffer
if ((indexBuffer.buffer == VK_NULL_HANDLE) || (indexCount < imDrawData->TotalIdxCount)) {
indexBuffer.unmap();
indexBuffer.destroy();
VK_CHECK_RESULT(device->createBuffer(VK_BUFFER_USAGE_INDEX_BUFFER_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, &indexBuffer, indexBufferSize));
indexCount = imDrawData->TotalIdxCount;
indexBuffer.map();
updateCmdBuffers = true;
}
// Upload data
ImDrawVert* vtxDst = (ImDrawVert*)vertexBuffer.mapped;
ImDrawIdx* idxDst = (ImDrawIdx*)indexBuffer.mapped;
for (int n = 0; n < imDrawData->CmdListsCount; n++) {
const ImDrawList* cmd_list = imDrawData->CmdLists[n];
memcpy(vtxDst, cmd_list->VtxBuffer.Data, cmd_list->VtxBuffer.Size * sizeof(ImDrawVert));
memcpy(idxDst, cmd_list->IdxBuffer.Data, cmd_list->IdxBuffer.Size * sizeof(ImDrawIdx));
vtxDst += cmd_list->VtxBuffer.Size;
idxDst += cmd_list->IdxBuffer.Size;
}
// Flush to make writes visible to GPU
vertexBuffer.flush();
indexBuffer.flush();
return updateCmdBuffers;
}
void UIOverlay::draw(const VkCommandBuffer commandBuffer)
{
ImDrawData* imDrawData = ImGui::GetDrawData();
int32_t vertexOffset = 0;
int32_t indexOffset = 0;
if ((!imDrawData) || (imDrawData->CmdListsCount == 0)) {
return;
}
ImGuiIO& io = ImGui::GetIO();
vkCmdBindPipeline(commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline);
vkCmdBindDescriptorSets(commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipelineLayout, 0, 1, &descriptorSet, 0, NULL);
pushConstBlock.scale = glm::vec2(2.0f / io.DisplaySize.x, 2.0f / io.DisplaySize.y);
pushConstBlock.translate = glm::vec2(-1.0f);
vkCmdPushConstants(commandBuffer, pipelineLayout, VK_SHADER_STAGE_VERTEX_BIT, 0, sizeof(PushConstBlock), &pushConstBlock);
VkDeviceSize offsets[1] = { 0 };
vkCmdBindVertexBuffers(commandBuffer, 0, 1, &vertexBuffer.buffer, offsets);
vkCmdBindIndexBuffer(commandBuffer, indexBuffer.buffer, 0, VK_INDEX_TYPE_UINT16);
for (int32_t i = 0; i < imDrawData->CmdListsCount; i++)
{
const ImDrawList* cmd_list = imDrawData->CmdLists[i];
for (int32_t j = 0; j < cmd_list->CmdBuffer.Size; j++)
{
const ImDrawCmd* pcmd = &cmd_list->CmdBuffer[j];
VkRect2D scissorRect;
scissorRect.offset.x = std::max((int32_t)(pcmd->ClipRect.x), 0);
scissorRect.offset.y = std::max((int32_t)(pcmd->ClipRect.y), 0);
scissorRect.extent.width = (uint32_t)(pcmd->ClipRect.z - pcmd->ClipRect.x);
scissorRect.extent.height = (uint32_t)(pcmd->ClipRect.w - pcmd->ClipRect.y);
vkCmdSetScissor(commandBuffer, 0, 1, &scissorRect);
vkCmdDrawIndexed(commandBuffer, pcmd->ElemCount, 1, indexOffset, vertexOffset, 0);
indexOffset += pcmd->ElemCount;
}
vertexOffset += cmd_list->VtxBuffer.Size;
}
}
void UIOverlay::resize(uint32_t width, uint32_t height)
{
ImGuiIO& io = ImGui::GetIO();
io.DisplaySize = ImVec2((float)(width), (float)(height));
}
void UIOverlay::freeResources()
{
vertexBuffer.destroy();
indexBuffer.destroy();
vkDestroyImageView(device->logicalDevice, fontView, nullptr);
vkDestroyImage(device->logicalDevice, fontImage, nullptr);
vkFreeMemory(device->logicalDevice, fontMemory, nullptr);
vkDestroySampler(device->logicalDevice, sampler, nullptr);
vkDestroyDescriptorSetLayout(device->logicalDevice, descriptorSetLayout, nullptr);
vkDestroyDescriptorPool(device->logicalDevice, descriptorPool, nullptr);
vkDestroyPipelineLayout(device->logicalDevice, pipelineLayout, nullptr);
vkDestroyPipeline(device->logicalDevice, pipeline, nullptr);
}
bool UIOverlay::header(const char *caption)
{
return ImGui::CollapsingHeader(caption, ImGuiTreeNodeFlags_DefaultOpen);
}
bool UIOverlay::checkBox(const char *caption, bool *value)
{
bool res = ImGui::Checkbox(caption, value);
if (res) { updated = true; };
return res;
}
bool UIOverlay::checkBox(const char *caption, int32_t *value)
{
bool val = (*value == 1);
bool res = ImGui::Checkbox(caption, &val);
*value = val;
if (res) { updated = true; };
return res;
}
bool UIOverlay::radioButton(const char* caption, bool value)
{
bool res = ImGui::RadioButton(caption, value);
if (res) { updated = true; };
return res;
}
bool UIOverlay::inputFloat(const char *caption, float *value, float step, uint32_t precision)
{
bool res = ImGui::InputFloat(caption, value, step, step * 10.0f, precision);
if (res) { updated = true; };
return res;
}
bool UIOverlay::sliderFloat(const char* caption, float* value, float min, float max)
{
bool res = ImGui::SliderFloat(caption, value, min, max);
if (res) { updated = true; };
return res;
}
bool UIOverlay::sliderInt(const char* caption, int32_t* value, int32_t min, int32_t max)
{
bool res = ImGui::SliderInt(caption, value, min, max);
if (res) { updated = true; };
return res;
}
bool UIOverlay::comboBox(const char *caption, int32_t *itemindex, std::vector<std::string> items)
{
if (items.empty()) {
return false;
}
std::vector<const char*> charitems;
charitems.reserve(items.size());
for (size_t i = 0; i < items.size(); i++) {
charitems.push_back(items[i].c_str());
}
uint32_t itemCount = static_cast<uint32_t>(charitems.size());
bool res = ImGui::Combo(caption, itemindex, &charitems[0], itemCount, itemCount);
if (res) { updated = true; };
return res;
}
bool UIOverlay::button(const char *caption)
{
bool res = ImGui::Button(caption);
if (res) { updated = true; };
return res;
}
bool UIOverlay::colorPicker(const char* caption, float* color) {
bool res = ImGui::ColorEdit4(caption, color, ImGuiColorEditFlags_NoInputs);
if (res) { updated = true; };
return res;
}
void UIOverlay::text(const char *formatstr, ...)
{
va_list args;
va_start(args, formatstr);
ImGui::TextV(formatstr, args);
va_end(args);
}
}

View File

@ -1,93 +0,0 @@
/*
* UI overlay class using ImGui
*
* Copyright (C) 2017 by Sascha Willems - www.saschawillems.de
*
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
*/
#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <vector>
#include <sstream>
#include <iomanip>
#include <vulkan/vulkan.h>
#include "VulkanTools.h"
#include "VulkanDebug.h"
#include "VulkanBuffer.h"
#include "VulkanDevice.hpp"
#include "../external/imgui/imgui.h"
#if defined(__ANDROID__)
#include "VulkanAndroid.h"
#endif
namespace vks
{
class UIOverlay
{
public:
vks::VulkanDevice *device;
VkQueue queue;
VkSampleCountFlagBits rasterizationSamples = VK_SAMPLE_COUNT_1_BIT;
uint32_t subpass = 0;
vks::Buffer vertexBuffer;
vks::Buffer indexBuffer;
int32_t vertexCount = 0;
int32_t indexCount = 0;
std::vector<VkPipelineShaderStageCreateInfo> shaders;
VkDescriptorPool descriptorPool;
VkDescriptorSetLayout descriptorSetLayout;
VkDescriptorSet descriptorSet;
VkPipelineLayout pipelineLayout;
VkPipeline pipeline;
VkDeviceMemory fontMemory = VK_NULL_HANDLE;
VkImage fontImage = VK_NULL_HANDLE;
VkImageView fontView = VK_NULL_HANDLE;
VkSampler sampler;
struct PushConstBlock {
glm::vec2 scale;
glm::vec2 translate;
} pushConstBlock;
bool visible = true;
bool updated = false;
float scale = 1.0f;
UIOverlay();
~UIOverlay();
void preparePipeline(const VkPipelineCache pipelineCache, const VkRenderPass renderPass, const VkFormat colorFormat, const VkFormat depthFormat);
void prepareResources();
bool update();
void draw(const VkCommandBuffer commandBuffer);
void resize(uint32_t width, uint32_t height);
void freeResources();
bool header(const char* caption);
bool checkBox(const char* caption, bool* value);
bool checkBox(const char* caption, int32_t* value);
bool radioButton(const char* caption, bool value);
bool inputFloat(const char* caption, float* value, float step, uint32_t precision);
bool sliderFloat(const char* caption, float* value, float min, float max);
bool sliderInt(const char* caption, int32_t* value, int32_t min, int32_t max);
bool comboBox(const char* caption, int32_t* itemindex, std::vector<std::string> items);
bool button(const char* caption);
bool colorPicker(const char* caption, float* color);
void text(const char* formatstr, ...);
};
}

View File

@ -16,11 +16,7 @@
#include <map>
#include "vulkan/vulkan.h"
#include "VulkanDevice.hpp"
#if defined(__ANDROID__)
#include <android/asset_manager.h>
#elif defined(__linux__)
#include <dirent.h>
#endif
/*
Vulkan buffer object

File diff suppressed because it is too large Load Diff

View File

@ -1,308 +0,0 @@
/*
* Vulkan glTF model and texture loading class based on tinyglTF (https://github.com/syoyo/tinygltf)
*
* Copyright (C) 2018 by Sascha Willems - www.saschawillems.de
*
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
*/
#pragma once
#include <stdlib.h>
#include <string>
#include <fstream>
#include <vector>
#include "vulkan/vulkan.h"
#include "VulkanDevice.hpp"
#include <ktx.h>
#include <ktxvulkan.h>
#define GLM_FORCE_RADIANS
#define GLM_FORCE_DEPTH_ZERO_TO_ONE
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
#define TINYGLTF_NO_STB_IMAGE_WRITE
#ifdef VK_USE_PLATFORM_ANDROID_KHR
#define TINYGLTF_ANDROID_LOAD_FROM_ASSETS
#endif
#include "tiny_gltf.h"
#if defined(__ANDROID__)
#include <android/asset_manager.h>
#endif
namespace vkglTF
{
enum DescriptorBindingFlags {
ImageBaseColor = 0x00000001,
ImageNormalMap = 0x00000002
};
extern VkDescriptorSetLayout descriptorSetLayoutImage;
extern VkDescriptorSetLayout descriptorSetLayoutUbo;
extern VkMemoryPropertyFlags memoryPropertyFlags;
extern uint32_t descriptorBindingFlags;
struct Node;
/*
glTF texture loading class
*/
struct Texture {
vks::VulkanDevice* device = nullptr;
VkImage image;
VkImageLayout imageLayout;
VkDeviceMemory deviceMemory;
VkImageView view;
uint32_t width, height;
uint32_t mipLevels;
uint32_t layerCount;
VkDescriptorImageInfo descriptor;
VkSampler sampler;
void updateDescriptor();
void destroy();
void fromglTfImage(tinygltf::Image& gltfimage, std::string path, vks::VulkanDevice* device, VkQueue copyQueue);
};
/*
glTF material class
*/
struct Material {
vks::VulkanDevice* device = nullptr;
enum AlphaMode { ALPHAMODE_OPAQUE, ALPHAMODE_MASK, ALPHAMODE_BLEND };
AlphaMode alphaMode = ALPHAMODE_OPAQUE;
float alphaCutoff = 1.0f;
float metallicFactor = 1.0f;
float roughnessFactor = 1.0f;
glm::vec4 baseColorFactor = glm::vec4(1.0f);
vkglTF::Texture* baseColorTexture = nullptr;
vkglTF::Texture* metallicRoughnessTexture = nullptr;
vkglTF::Texture* normalTexture = nullptr;
vkglTF::Texture* occlusionTexture = nullptr;
vkglTF::Texture* emissiveTexture = nullptr;
vkglTF::Texture* specularGlossinessTexture;
vkglTF::Texture* diffuseTexture;
VkDescriptorSet descriptorSet = VK_NULL_HANDLE;
Material(vks::VulkanDevice* device) : device(device) {};
void createDescriptorSet(VkDescriptorPool descriptorPool, VkDescriptorSetLayout descriptorSetLayout, uint32_t descriptorBindingFlags);
};
/*
glTF primitive
*/
struct Primitive {
uint32_t firstIndex;
uint32_t indexCount;
uint32_t firstVertex;
uint32_t vertexCount;
Material& material;
struct Dimensions {
glm::vec3 min = glm::vec3(FLT_MAX);
glm::vec3 max = glm::vec3(-FLT_MAX);
glm::vec3 size;
glm::vec3 center;
float radius;
} dimensions;
void setDimensions(glm::vec3 min, glm::vec3 max);
Primitive(uint32_t firstIndex, uint32_t indexCount, Material& material) : firstIndex(firstIndex), indexCount(indexCount), material(material) {};
};
/*
glTF mesh
*/
struct Mesh {
vks::VulkanDevice* device;
std::vector<Primitive*> primitives;
std::string name;
struct UniformBuffer {
VkBuffer buffer;
VkDeviceMemory memory;
VkDescriptorBufferInfo descriptor;
VkDescriptorSet descriptorSet = VK_NULL_HANDLE;
void* mapped;
} uniformBuffer;
struct UniformBlock {
glm::mat4 matrix;
glm::mat4 jointMatrix[64]{};
float jointcount{ 0 };
} uniformBlock;
Mesh(vks::VulkanDevice* device, glm::mat4 matrix);
~Mesh();
};
/*
glTF skin
*/
struct Skin {
std::string name;
Node* skeletonRoot = nullptr;
std::vector<glm::mat4> inverseBindMatrices;
std::vector<Node*> joints;
};
/*
glTF node
*/
struct Node {
Node* parent;
uint32_t index;
std::vector<Node*> children;
glm::mat4 matrix;
std::string name;
Mesh* mesh;
Skin* skin;
int32_t skinIndex = -1;
glm::vec3 translation{};
glm::vec3 scale{ 1.0f };
glm::quat rotation{};
glm::mat4 localMatrix();
glm::mat4 getMatrix();
void update();
~Node();
};
/*
glTF animation channel
*/
struct AnimationChannel {
enum PathType { TRANSLATION, ROTATION, SCALE };
PathType path;
Node* node;
uint32_t samplerIndex;
};
/*
glTF animation sampler
*/
struct AnimationSampler {
enum InterpolationType { LINEAR, STEP, CUBICSPLINE };
InterpolationType interpolation;
std::vector<float> inputs;
std::vector<glm::vec4> outputsVec4;
};
/*
glTF animation
*/
struct Animation {
std::string name;
std::vector<AnimationSampler> samplers;
std::vector<AnimationChannel> channels;
float start = std::numeric_limits<float>::max();
float end = std::numeric_limits<float>::min();
};
/*
glTF default vertex layout with easy Vulkan mapping functions
*/
enum class VertexComponent { Position, Normal, UV, Color, Tangent, Joint0, Weight0 };
struct Vertex {
glm::vec3 pos;
glm::vec3 normal;
glm::vec2 uv;
glm::vec4 color;
glm::vec4 joint0;
glm::vec4 weight0;
glm::vec4 tangent;
static VkVertexInputBindingDescription vertexInputBindingDescription;
static std::vector<VkVertexInputAttributeDescription> vertexInputAttributeDescriptions;
static VkPipelineVertexInputStateCreateInfo pipelineVertexInputStateCreateInfo;
static VkVertexInputBindingDescription inputBindingDescription(uint32_t binding);
static VkVertexInputAttributeDescription inputAttributeDescription(uint32_t binding, uint32_t location, VertexComponent component);
static std::vector<VkVertexInputAttributeDescription> inputAttributeDescriptions(uint32_t binding, const std::vector<VertexComponent> components);
/** @brief Returns the default pipeline vertex input state create info structure for the requested vertex components */
static VkPipelineVertexInputStateCreateInfo* getPipelineVertexInputState(const std::vector<VertexComponent> components);
};
enum FileLoadingFlags {
None = 0x00000000,
PreTransformVertices = 0x00000001,
PreMultiplyVertexColors = 0x00000002,
FlipY = 0x00000004,
DontLoadImages = 0x00000008
};
enum RenderFlags {
BindImages = 0x00000001,
RenderOpaqueNodes = 0x00000002,
RenderAlphaMaskedNodes = 0x00000004,
RenderAlphaBlendedNodes = 0x00000008
};
/*
glTF model loading and rendering class
*/
class Model {
private:
vkglTF::Texture* getTexture(uint32_t index);
vkglTF::Texture emptyTexture;
void createEmptyTexture(VkQueue transferQueue);
public:
vks::VulkanDevice* device;
VkDescriptorPool descriptorPool;
struct Vertices {
int count;
VkBuffer buffer;
VkDeviceMemory memory;
} vertices;
struct Indices {
int count;
VkBuffer buffer;
VkDeviceMemory memory;
} indices;
std::vector<Node*> nodes;
std::vector<Node*> linearNodes;
std::vector<Skin*> skins;
std::vector<Texture> textures;
std::vector<Material> materials;
std::vector<Animation> animations;
struct Dimensions {
glm::vec3 min = glm::vec3(FLT_MAX);
glm::vec3 max = glm::vec3(-FLT_MAX);
glm::vec3 size;
glm::vec3 center;
float radius;
} dimensions;
bool metallicRoughnessWorkflow = true;
bool buffersBound = false;
std::string path;
Model() {};
~Model();
void loadNode(vkglTF::Node* parent, const tinygltf::Node& node, uint32_t nodeIndex, const tinygltf::Model& model, std::vector<uint32_t>& indexBuffer, std::vector<Vertex>& vertexBuffer, float globalscale);
void loadSkins(tinygltf::Model& gltfModel);
void loadImages(tinygltf::Model& gltfModel, vks::VulkanDevice* device, VkQueue transferQueue);
void loadMaterials(tinygltf::Model& gltfModel);
void loadAnimations(tinygltf::Model& gltfModel);
void loadFromFile(std::string filename, vks::VulkanDevice* device, VkQueue transferQueue, uint32_t fileLoadingFlags = vkglTF::FileLoadingFlags::None, float scale = 1.0f);
void bindBuffers(VkCommandBuffer commandBuffer);
void drawNode(Node* node, VkCommandBuffer commandBuffer, uint32_t renderFlags = 0, VkPipelineLayout pipelineLayout = VK_NULL_HANDLE, uint32_t bindImageSet = 1);
void draw(VkCommandBuffer commandBuffer, uint32_t renderFlags = 0, VkPipelineLayout pipelineLayout = VK_NULL_HANDLE, uint32_t bindImageSet = 1);
void getNodeDimensions(Node* node, glm::vec3& min, glm::vec3& max);
void getSceneDimensions();
void updateAnimation(uint32_t index, float time);
Node* findNode(Node* parent, uint32_t index);
Node* nodeFromIndex(uint32_t index);
void prepareNodeDescriptor(vkglTF::Node* node, VkDescriptorSetLayout descriptorSetLayout);
};
}

View File

@ -1,51 +0,0 @@
/*
* Global macros
*
* Copyright (C) 2018 by Sascha Willems - www.saschawillems.de
*
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
*/
#pragma once
#include "vulkan/vulkan.h"
#if defined(__ANDROID__)
#define VK_CHECK_RESULT(f) \
{ \
VkResult res = (f); \
if (res != VK_SUCCESS) \
{ \
LOGE("Fatal : VkResult is \" %d \" in %s at line %d", res, __FILE__, __LINE__); \
assert(res == VK_SUCCESS); \
} \
}
#else
#define VK_CHECK_RESULT(f) \
{ \
VkResult res = (f); \
if (res != VK_SUCCESS) \
{ \
std::cout << "Fatal : VkResult is \"" << res << "\" in " << __FILE__ << " at line " << __LINE__ << std::endl; \
assert(res == VK_SUCCESS); \
} \
}
#endif
#define GET_INSTANCE_PROC_ADDR(inst, entrypoint) \
{ \
fp##entrypoint = reinterpret_cast<PFN_vk##entrypoint>(vkGetInstanceProcAddr(inst, "vk"#entrypoint)); \
if (fp##entrypoint == NULL) \
{ \
exit(1); \
} \
}
#define GET_DEVICE_PROC_ADDR(dev, entrypoint) \
{ \
fp##entrypoint = reinterpret_cast<PFN_vk##entrypoint>(vkGetDeviceProcAddr(dev, "vk"#entrypoint)); \
if (fp##entrypoint == NULL) \
{ \
exit(1); \
} \
}

View File

@ -13,6 +13,7 @@
#include <windows.h>
#include <fcntl.h>
#include <io.h>
#elif defined(VK_USE_PLATFORM_ANDROID_KHR)
#include <android/native_activity.h>
#include <android/asset_manager.h>
@ -47,7 +48,7 @@
#include "vulkan/vulkan.h"
#include "macros.h"
#include "VulkanTools.h"
#include "camera.hpp"
#include "keycodes.hpp"

17
external/gli/.appveyor.yml vendored 100644
View File

@ -0,0 +1,17 @@
clone_folder: c:\dev\gli-cmake
os:
- Visual Studio 2013
platform:
- x86
- x86_64
build_script:
- md build
- cd build
- cmake -DCMAKE_CXX_COMPILER=$COMPILER ..
- cmake --build . --config Debug
- cmake --build . --config Release
- cd ..

5
external/gli/.gitignore vendored 100644
View File

@ -0,0 +1,5 @@
build/
*~
*.swp
*.swo

38
external/gli/.travis.yml vendored 100644
View File

@ -0,0 +1,38 @@
dist: trusty
language: cpp
matrix:
include:
- compiler: gcc
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.9
env: COMPILER=g++-4.9
- compiler: clang
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.8
packages:
- clang-3.8
env: COMPILER=clang++-3.8
compiler:
- clang
before_script:
- cmake --version
script:
- mkdir ./build
- cd ./build
- cmake -DCMAKE_CXX_COMPILER=$COMPILER ..
- cmake --build .
- ctest
- cd ..

139
external/gli/CMakeLists.txt vendored 100644
View File

@ -0,0 +1,139 @@
cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
cmake_policy(VERSION 2.6)
if (NOT CMAKE_VERSION VERSION_LESS "3.1")
cmake_policy(SET CMP0054 NEW)
endif()
project(gli)
set(GLI_VERSION "0.8.1")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)
enable_testing()
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
add_definitions(-DSOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
include_directories(".")
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
# To generate .asm files: /FAs
add_definitions(/Za)
endif()
if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") OR (("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") AND UNIX))
set(CMAKE_CXX_FLAGS "-std=c++0x")
add_definitions(-Wall)
endif()
################################
# Add source files
file(GLOB ROOT_SOURCE ./gli/*.cpp)
file(GLOB ROOT_INLINE ./gli/*.inl)
file(GLOB ROOT_HEADER ./gli/*.hpp)
file(GLOB ROOT_TEXT ./*.txt)
file(GLOB ROOT_MD ../*.md)
file(GLOB ROOT_KMG ./doc/spec/*.html)
file(GLOB_RECURSE CORE_SOURCE ./gli/core/*.cpp)
file(GLOB_RECURSE CORE_INLINE ./gli/core/*.inl)
file(GLOB_RECURSE CORE_HEADER ./gli/core/*.hpp)
file(GLOB_RECURSE GTX_SOURCE ./gli/gtx/*.cpp)
file(GLOB_RECURSE GTX_INLINE ./gli/gtx/*.inl)
file(GLOB_RECURSE GTX_HEADER ./gli/gtx/*.hpp)
source_group("KMG Spec" FILES ${ROOT_KMG})
source_group("Text Files" FILES ${ROOT_TEXT} ${ROOT_MD})
source_group("Core Files" FILES ${CORE_SOURCE})
source_group("Core Files" FILES ${CORE_INLINE})
source_group("Core Files" FILES ${CORE_HEADER})
source_group("GTX Files" FILES ${GTX_SOURCE})
source_group("GTX Files" FILES ${GTX_INLINE})
source_group("GTX Files" FILES ${GTX_HEADER})
################################
# Add package
macro(addExternalPackageGTC NAME DIRECTORY)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/external/${DIRECTORY}/util)
set(${NAME}_PACKAGE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/${DIRECTORY})
find_package(${NAME})
if(NOT ${NAME}_FOUND)
message("ERROR: ${NAME} not found")
endif(NOT ${NAME}_FOUND)
endmacro(addExternalPackageGTC)
################################
# Add GLM
set(GLM_DIRECTORY glm)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/external/${GLM_DIRECTORY})
################################
# Add subdirectory
add_subdirectory(gli)
add_subdirectory(test)
#add_subdirectory(doc)
################################
# Add installer
set(GLI_INSTALL_CONFIGDIR "${CMAKE_INSTALL_LIBDIR}/cmake/gli")
install(DIRECTORY gli DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/gliVersion.cmake"
VERSION ${GLI_VERSION}
COMPATIBILITY AnyNewerVersion
)
# build tree package config
configure_file(
cmake/gliBuildConfig.cmake.in
gliConfig.cmake
@ONLY
)
# install tree package config
configure_package_config_file(
cmake/gliConfig.cmake.in
${GLI_INSTALL_CONFIGDIR}/gliConfig.cmake
INSTALL_DESTINATION ${GLI_INSTALL_CONFIGDIR}
PATH_VARS CMAKE_INSTALL_INCLUDEDIR
NO_CHECK_REQUIRED_COMPONENTS_MACRO
)
install(
FILES
"${CMAKE_CURRENT_BINARY_DIR}/${GLI_INSTALL_CONFIGDIR}/gliConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/gliVersion.cmake"
DESTINATION ${GLI_INSTALL_CONFIGDIR}
)
if (NOT CMAKE_VERSION VERSION_LESS "3.0")
add_library(gli INTERFACE)
target_include_directories(gli INTERFACE
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
)
install(TARGETS gli EXPORT gliTargets)
export(
EXPORT gliTargets
FILE "${CMAKE_CURRENT_BINARY_DIR}/gliTargets.cmake"
)
install(
EXPORT gliTargets FILE gliTargets.cmake
DESTINATION ${GLI_INSTALL_CONFIGDIR}
)
endif()
export(PACKAGE gli)

View File

@ -0,0 +1,227 @@
# - CONFIGURE_PACKAGE_CONFIG_FILE(), WRITE_BASIC_PACKAGE_VERSION_FILE()
#
# CONFIGURE_PACKAGE_CONFIG_FILE(<input> <output> INSTALL_DESTINATION <path>
# [PATH_VARS <var1> <var2> ... <varN>]
# [NO_SET_AND_CHECK_MACRO]
# [NO_CHECK_REQUIRED_COMPONENTS_MACRO])
#
# CONFIGURE_PACKAGE_CONFIG_FILE() should be used instead of the plain
# CONFIGURE_FILE() command when creating the <Name>Config.cmake or <Name>-config.cmake
# file for installing a project or library. It helps making the resulting package
# relocatable by avoiding hardcoded paths in the installed Config.cmake file.
#
# In a FooConfig.cmake file there may be code like this to make the
# install destinations know to the using project:
# set(FOO_INCLUDE_DIR "@CMAKE_INSTALL_FULL_INCLUDEDIR@" )
# set(FOO_DATA_DIR "@CMAKE_INSTALL_PREFIX@/@RELATIVE_DATA_INSTALL_DIR@" )
# set(FOO_ICONS_DIR "@CMAKE_INSTALL_PREFIX@/share/icons" )
# ...logic to determine installedPrefix from the own location...
# set(FOO_CONFIG_DIR "${installedPrefix}/@CONFIG_INSTALL_DIR@" )
# All 4 options shown above are not sufficient, since the first 3 hardcode
# the absolute directory locations, and the 4th case works only if the logic
# to determine the installedPrefix is correct, and if CONFIG_INSTALL_DIR contains
# a relative path, which in general cannot be guaranteed.
# This has the effect that the resulting FooConfig.cmake file would work poorly
# under Windows and OSX, where users are used to choose the install location
# of a binary package at install time, independent from how CMAKE_INSTALL_PREFIX
# was set at build/cmake time.
#
# Using CONFIGURE_PACKAGE_CONFIG_FILE() helps. If used correctly, it makes the
# resulting FooConfig.cmake file relocatable.
# Usage:
# 1. write a FooConfig.cmake.in file as you are used to
# 2. insert a line containing only the string "@PACKAGE_INIT@"
# 3. instead of SET(FOO_DIR "@SOME_INSTALL_DIR@"), use SET(FOO_DIR "@PACKAGE_SOME_INSTALL_DIR@")
# (this must be after the @PACKAGE_INIT@ line)
# 4. instead of using the normal CONFIGURE_FILE(), use CONFIGURE_PACKAGE_CONFIG_FILE()
#
# The <input> and <output> arguments are the input and output file, the same way
# as in CONFIGURE_FILE().
#
# The <path> given to INSTALL_DESTINATION must be the destination where the FooConfig.cmake
# file will be installed to. This can either be a relative or absolute path, both work.
#
# The variables <var1> to <varN> given as PATH_VARS are the variables which contain
# install destinations. For each of them the macro will create a helper variable
# PACKAGE_<var...>. These helper variables must be used
# in the FooConfig.cmake.in file for setting the installed location. They are calculated
# by CONFIGURE_PACKAGE_CONFIG_FILE() so that they are always relative to the
# installed location of the package. This works both for relative and also for absolute locations.
# For absolute locations it works only if the absolute location is a subdirectory
# of CMAKE_INSTALL_PREFIX.
#
# By default configure_package_config_file() also generates two helper macros,
# set_and_check() and check_required_components() into the FooConfig.cmake file.
#
# set_and_check() should be used instead of the normal set()
# command for setting directories and file locations. Additionally to setting the
# variable it also checks that the referenced file or directory actually exists
# and fails with a FATAL_ERROR otherwise. This makes sure that the created
# FooConfig.cmake file does not contain wrong references.
# When using the NO_SET_AND_CHECK_MACRO, this macro is not generated into the
# FooConfig.cmake file.
#
# check_required_components(<package_name>) should be called at the end of the
# FooConfig.cmake file if the package supports components.
# This macro checks whether all requested, non-optional components have been found,
# and if this is not the case, sets the Foo_FOUND variable to FALSE, so that the package
# is considered to be not found.
# It does that by testing the Foo_<Component>_FOUND variables for all requested
# required components.
# When using the NO_CHECK_REQUIRED_COMPONENTS option, this macro is not generated
# into the FooConfig.cmake file.
#
# For an example see below the documentation for WRITE_BASIC_PACKAGE_VERSION_FILE().
#
#
# WRITE_BASIC_PACKAGE_VERSION_FILE( filename VERSION major.minor.patch COMPATIBILITY (AnyNewerVersion|SameMajorVersion|ExactVersion) )
#
# Writes a file for use as <package>ConfigVersion.cmake file to <filename>.
# See the documentation of FIND_PACKAGE() for details on this.
# filename is the output filename, it should be in the build tree.
# major.minor.patch is the version number of the project to be installed
# The COMPATIBILITY mode AnyNewerVersion means that the installed package version
# will be considered compatible if it is newer or exactly the same as the requested version.
# This mode should be used for packages which are fully backward compatible,
# also across major versions.
# If SameMajorVersion is used instead, then the behaviour differs from AnyNewerVersion
# in that the major version number must be the same as requested, e.g. version 2.0 will
# not be considered compatible if 1.0 is requested.
# This mode should be used for packages which guarantee backward compatibility within the
# same major version.
# If ExactVersion is used, then the package is only considered compatible if the requested
# version matches exactly its own version number (not considering the tweak version).
# For example, version 1.2.3 of a package is only considered compatible to requested version 1.2.3.
# This mode is for packages without compatibility guarantees.
# If your project has more elaborated version matching rules, you will need to write your
# own custom ConfigVersion.cmake file instead of using this macro.
#
# Internally, this macro executes configure_file() to create the resulting
# version file. Depending on the COMPATIBILITY, either the file
# BasicConfigVersion-SameMajorVersion.cmake.in or BasicConfigVersion-AnyNewerVersion.cmake.in
# is used. Please note that these two files are internal to CMake and you should
# not call configure_file() on them yourself, but they can be used as starting
# point to create more sophisticted custom ConfigVersion.cmake files.
#
#
# Example using both configure_package_config_file() and write_basic_package_version_file():
# CMakeLists.txt:
# set(INCLUDE_INSTALL_DIR include/ ... CACHE )
# set(LIB_INSTALL_DIR lib/ ... CACHE )
# set(SYSCONFIG_INSTALL_DIR etc/foo/ ... CACHE )
# ...
# include(CMakePackageConfigHelpers)
# configure_package_config_file(FooConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake
# INSTALL_DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake
# PATH_VARS INCLUDE_INSTALL_DIR SYSCONFIG_INSTALL_DIR)
# write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake
# VERSION 1.2.3
# COMPATIBILITY SameMajorVersion )
# install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake
# DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake )
#
# With a FooConfig.cmake.in:
# set(FOO_VERSION x.y.z)
# ...
# @PACKAGE_INIT@
# ...
# set_and_check(FOO_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
# set_and_check(FOO_SYSCONFIG_DIR "@PACKAGE_SYSCONFIG_INSTALL_DIR@")
#
# check_required_components(Foo)
#=============================================================================
# Copyright 2012 Alexander Neundorf <neundorf@kde.org>
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
include(CMakeParseArguments)
include(WriteBasicConfigVersionFile)
macro(WRITE_BASIC_PACKAGE_VERSION_FILE)
write_basic_config_version_file(${ARGN})
endmacro()
function(CONFIGURE_PACKAGE_CONFIG_FILE _inputFile _outputFile)
set(options NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO)
set(oneValueArgs INSTALL_DESTINATION )
set(multiValueArgs PATH_VARS )
cmake_parse_arguments(CCF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if(CCF_UNPARSED_ARGUMENTS)
message(FATAL_ERROR "Unknown keywords given to CONFIGURE_PACKAGE_CONFIG_FILE(): \"${CCF_UNPARSED_ARGUMENTS}\"")
endif()
if(NOT CCF_INSTALL_DESTINATION)
message(FATAL_ERROR "No INSTALL_DESTINATION given to CONFIGURE_PACKAGE_CONFIG_FILE()")
endif()
if(IS_ABSOLUTE "${CCF_INSTALL_DESTINATION}")
set(absInstallDir "${CCF_INSTALL_DESTINATION}")
else()
set(absInstallDir "${CMAKE_INSTALL_PREFIX}/${CCF_INSTALL_DESTINATION}")
endif()
file(RELATIVE_PATH PACKAGE_RELATIVE_PATH "${absInstallDir}" "${CMAKE_INSTALL_PREFIX}" )
foreach(var ${CCF_PATH_VARS})
if(NOT DEFINED ${var})
message(FATAL_ERROR "Variable ${var} does not exist")
else()
if(IS_ABSOLUTE "${${var}}")
string(REPLACE "${CMAKE_INSTALL_PREFIX}" "\${PACKAGE_PREFIX_DIR}"
PACKAGE_${var} "${${var}}")
else()
set(PACKAGE_${var} "\${PACKAGE_PREFIX_DIR}/${${var}}")
endif()
endif()
endforeach()
set(PACKAGE_INIT "
####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() #######
get_filename_component(PACKAGE_PREFIX_DIR \"\${CMAKE_CURRENT_LIST_DIR}/${PACKAGE_RELATIVE_PATH}\" ABSOLUTE)
")
if(NOT CCF_NO_SET_AND_CHECK_MACRO)
set(PACKAGE_INIT "${PACKAGE_INIT}
macro(set_and_check _var _file)
set(\${_var} \"\${_file}\")
if(NOT EXISTS \"\${_file}\")
message(FATAL_ERROR \"File or directory \${_file} referenced by variable \${_var} does not exist !\")
endif()
endmacro()
")
endif()
if(NOT CCF_NO_CHECK_REQUIRED_COMPONENTS_MACRO)
set(PACKAGE_INIT "${PACKAGE_INIT}
macro(check_required_components _NAME)
foreach(comp \${\${_NAME}_FIND_COMPONENTS})
if(NOT \${_NAME}_\${comp}_FOUND)
if(\${_NAME}_FIND_REQUIRED_\${comp})
set(\${_NAME}_FOUND FALSE)
endif()
endif()
endforeach(comp)
endmacro()
")
endif()
set(PACKAGE_INIT "${PACKAGE_INIT}
####################################################################################")
configure_file("${_inputFile}" "${_outputFile}" @ONLY)
endfunction()

View File

@ -0,0 +1,188 @@
# - Define GNU standard installation directories
# Provides install directory variables as defined for GNU software:
# http://www.gnu.org/prep/standards/html_node/Directory-Variables.html
# Inclusion of this module defines the following variables:
# CMAKE_INSTALL_<dir> - destination for files of a given type
# CMAKE_INSTALL_FULL_<dir> - corresponding absolute path
# where <dir> is one of:
# BINDIR - user executables (bin)
# SBINDIR - system admin executables (sbin)
# LIBEXECDIR - program executables (libexec)
# SYSCONFDIR - read-only single-machine data (etc)
# SHAREDSTATEDIR - modifiable architecture-independent data (com)
# LOCALSTATEDIR - modifiable single-machine data (var)
# LIBDIR - object code libraries (lib or lib64 or lib/<multiarch-tuple> on Debian)
# INCLUDEDIR - C header files (include)
# OLDINCLUDEDIR - C header files for non-gcc (/usr/include)
# DATAROOTDIR - read-only architecture-independent data root (share)
# DATADIR - read-only architecture-independent data (DATAROOTDIR)
# INFODIR - info documentation (DATAROOTDIR/info)
# LOCALEDIR - locale-dependent data (DATAROOTDIR/locale)
# MANDIR - man documentation (DATAROOTDIR/man)
# DOCDIR - documentation root (DATAROOTDIR/doc/PROJECT_NAME)
# Each CMAKE_INSTALL_<dir> value may be passed to the DESTINATION options of
# install() commands for the corresponding file type. If the includer does
# not define a value the above-shown default will be used and the value will
# appear in the cache for editing by the user.
# Each CMAKE_INSTALL_FULL_<dir> value contains an absolute path constructed
# from the corresponding destination by prepending (if necessary) the value
# of CMAKE_INSTALL_PREFIX.
#=============================================================================
# Copyright 2011 Nikita Krupen'ko <krnekit@gmail.com>
# Copyright 2011 Kitware, Inc.
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
# Installation directories
#
if(NOT DEFINED CMAKE_INSTALL_BINDIR)
set(CMAKE_INSTALL_BINDIR "bin" CACHE PATH "user executables (bin)")
endif()
if(NOT DEFINED CMAKE_INSTALL_SBINDIR)
set(CMAKE_INSTALL_SBINDIR "sbin" CACHE PATH "system admin executables (sbin)")
endif()
if(NOT DEFINED CMAKE_INSTALL_LIBEXECDIR)
set(CMAKE_INSTALL_LIBEXECDIR "libexec" CACHE PATH "program executables (libexec)")
endif()
if(NOT DEFINED CMAKE_INSTALL_SYSCONFDIR)
set(CMAKE_INSTALL_SYSCONFDIR "etc" CACHE PATH "read-only single-machine data (etc)")
endif()
if(NOT DEFINED CMAKE_INSTALL_SHAREDSTATEDIR)
set(CMAKE_INSTALL_SHAREDSTATEDIR "com" CACHE PATH "modifiable architecture-independent data (com)")
endif()
if(NOT DEFINED CMAKE_INSTALL_LOCALSTATEDIR)
set(CMAKE_INSTALL_LOCALSTATEDIR "var" CACHE PATH "modifiable single-machine data (var)")
endif()
if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
set(_LIBDIR_DEFAULT "lib")
# Override this default 'lib' with 'lib64' iff:
# - we are on Linux system but NOT cross-compiling
# - we are NOT on debian
# - we are on a 64 bits system
# reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf
# For Debian with multiarch, use 'lib/${CMAKE_LIBRARY_ARCHITECTURE}' if
# CMAKE_LIBRARY_ARCHITECTURE is set (which contains e.g. "i386-linux-gnu"
# See http://wiki.debian.org/Multiarch
if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU")
AND NOT CMAKE_CROSSCOMPILING)
if (EXISTS "/etc/debian_version") # is this a debian system ?
if(CMAKE_LIBRARY_ARCHITECTURE)
set(_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
endif()
else() # not debian, rely on CMAKE_SIZEOF_VOID_P:
if(NOT DEFINED CMAKE_SIZEOF_VOID_P)
message(AUTHOR_WARNING
"Unable to determine default CMAKE_INSTALL_LIBDIR directory because no target architecture is known. "
"Please enable at least one language before including GNUInstallDirs.")
else()
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(_LIBDIR_DEFAULT "lib64")
endif()
endif()
endif()
endif()
set(CMAKE_INSTALL_LIBDIR "${_LIBDIR_DEFAULT}" CACHE PATH "object code libraries (${_LIBDIR_DEFAULT})")
endif()
if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR)
set(CMAKE_INSTALL_INCLUDEDIR "include" CACHE PATH "C header files (include)")
endif()
if(NOT DEFINED CMAKE_INSTALL_OLDINCLUDEDIR)
set(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include" CACHE PATH "C header files for non-gcc (/usr/include)")
endif()
if(NOT DEFINED CMAKE_INSTALL_DATAROOTDIR)
set(CMAKE_INSTALL_DATAROOTDIR "share" CACHE PATH "read-only architecture-independent data root (share)")
endif()
#-----------------------------------------------------------------------------
# Values whose defaults are relative to DATAROOTDIR. Store empty values in
# the cache and store the defaults in local variables if the cache values are
# not set explicitly. This auto-updates the defaults as DATAROOTDIR changes.
if(NOT CMAKE_INSTALL_DATADIR)
set(CMAKE_INSTALL_DATADIR "" CACHE PATH "read-only architecture-independent data (DATAROOTDIR)")
set(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATAROOTDIR}")
endif()
if(NOT CMAKE_INSTALL_INFODIR)
set(CMAKE_INSTALL_INFODIR "" CACHE PATH "info documentation (DATAROOTDIR/info)")
set(CMAKE_INSTALL_INFODIR "${CMAKE_INSTALL_DATAROOTDIR}/info")
endif()
if(NOT CMAKE_INSTALL_LOCALEDIR)
set(CMAKE_INSTALL_LOCALEDIR "" CACHE PATH "locale-dependent data (DATAROOTDIR/locale)")
set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale")
endif()
if(NOT CMAKE_INSTALL_MANDIR)
set(CMAKE_INSTALL_MANDIR "" CACHE PATH "man documentation (DATAROOTDIR/man)")
set(CMAKE_INSTALL_MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man")
endif()
if(NOT CMAKE_INSTALL_DOCDIR)
set(CMAKE_INSTALL_DOCDIR "" CACHE PATH "documentation root (DATAROOTDIR/doc/PROJECT_NAME)")
set(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME}")
endif()
#-----------------------------------------------------------------------------
mark_as_advanced(
CMAKE_INSTALL_BINDIR
CMAKE_INSTALL_SBINDIR
CMAKE_INSTALL_LIBEXECDIR
CMAKE_INSTALL_SYSCONFDIR
CMAKE_INSTALL_SHAREDSTATEDIR
CMAKE_INSTALL_LOCALSTATEDIR
CMAKE_INSTALL_LIBDIR
CMAKE_INSTALL_INCLUDEDIR
CMAKE_INSTALL_OLDINCLUDEDIR
CMAKE_INSTALL_DATAROOTDIR
CMAKE_INSTALL_DATADIR
CMAKE_INSTALL_INFODIR
CMAKE_INSTALL_LOCALEDIR
CMAKE_INSTALL_MANDIR
CMAKE_INSTALL_DOCDIR
)
# Result directories
#
foreach(dir
BINDIR
SBINDIR
LIBEXECDIR
SYSCONFDIR
SHAREDSTATEDIR
LOCALSTATEDIR
LIBDIR
INCLUDEDIR
OLDINCLUDEDIR
DATAROOTDIR
DATADIR
INFODIR
LOCALEDIR
MANDIR
DOCDIR
)
if(NOT IS_ABSOLUTE ${CMAKE_INSTALL_${dir}})
set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_${dir}}")
else()
set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_${dir}}")
endif()
endforeach()

View File

@ -0,0 +1,6 @@
set(GLI_VERSION "@GLI_VERSION@")
set(GLI_INCLUDE_DIRS "@CMAKE_CURRENT_SOURCE_DIR@")
if (NOT CMAKE_VERSION VERSION_LESS "3.0")
include("${CMAKE_CURRENT_LIST_DIR}/gliTargets.cmake")
endif()

View File

@ -0,0 +1,9 @@
set(GLI_VERSION "@GLI_VERSION@")
@PACKAGE_INIT@
set_and_check(GLI_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@")
if (NOT CMAKE_VERSION VERSION_LESS "3.0")
include("${CMAKE_CURRENT_LIST_DIR}/gliTargets.cmake")
endif()

128
external/gli/doc/api/a00001.html vendored 100644
View File

@ -0,0 +1,128 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: dx Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00074.html">gli</a></li><li class="navelem"><a class="el" href="a00001.html">dx</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00079.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">dx Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Translation class to convert GLI enums into DirectX enums.
<a href="a00001.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a106d0ef4c65251c1c522e965af75678d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a106d0ef4c65251c1c522e965af75678d"></a>
<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">gli::format</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00001.html#a106d0ef4c65251c1c522e965af75678d">find</a> (d3dfmt FourCC) const </td></tr>
<tr class="memdesc:a106d0ef4c65251c1c522e965af75678d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a Direct3D 9 format into a GLI format. <br /></td></tr>
<tr class="separator:a106d0ef4c65251c1c522e965af75678d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c405f2ac45a1cb46414c45bea0c4943"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4c405f2ac45a1cb46414c45bea0c4943"></a>
<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">gli::format</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00001.html#a4c405f2ac45a1cb46414c45bea0c4943">find</a> (d3dfmt FourCC, dxgiFormat Format) const </td></tr>
<tr class="memdesc:a4c405f2ac45a1cb46414c45bea0c4943"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a Direct3D 10 format into a GLI format. <br /></td></tr>
<tr class="separator:a4c405f2ac45a1cb46414c45bea0c4943"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5a07c3371b0ea14fac8b0746e05c414"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac5a07c3371b0ea14fac8b0746e05c414"></a>
<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00001.html#ac5a07c3371b0ea14fac8b0746e05c414">translate</a> (<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">gli::format</a> Format) const </td></tr>
<tr class="memdesc:ac5a07c3371b0ea14fac8b0746e05c414"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert GLI formats into Direct3D formats. <br /></td></tr>
<tr class="separator:ac5a07c3371b0ea14fac8b0746e05c414"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Translation class to convert GLI enums into DirectX enums. </p>
<p>Definition at line <a class="el" href="a00028_source.html#l00013">13</a> of file <a class="el" href="a00028_source.html">dx.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

128
external/gli/doc/api/a00002.html vendored 100644
View File

@ -0,0 +1,128 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: gl Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00074.html">gli</a></li><li class="navelem"><a class="el" href="a00002.html">gl</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00080.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">gl Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Translation class to convert GLI enums into OpenGL values.
<a href="a00002.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a9f79c9677bd9cd22648723a4d06612ee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9f79c9677bd9cd22648723a4d06612ee"></a>
<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">gli::format</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00002.html#a9f79c9677bd9cd22648723a4d06612ee">find</a> (internal_format InternalFormat, external_format ExternalFormat, type_format Type)</td></tr>
<tr class="memdesc:a9f79c9677bd9cd22648723a4d06612ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert an OpenGL format into a GLI format. <br /></td></tr>
<tr class="separator:a9f79c9677bd9cd22648723a4d06612ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab38a3e0b9878adb8a6de97c0c00f3cff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab38a3e0b9878adb8a6de97c0c00f3cff"></a>
target const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00002.html#ab38a3e0b9878adb8a6de97c0c00f3cff">translate</a> (<a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">gli::target</a> Target) const </td></tr>
<tr class="memdesc:ab38a3e0b9878adb8a6de97c0c00f3cff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert GLI targets into OpenGL texture targets. <br /></td></tr>
<tr class="separator:ab38a3e0b9878adb8a6de97c0c00f3cff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbe59739eeb1c2247c0693ee0cb0aa50"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acbe59739eeb1c2247c0693ee0cb0aa50"></a>
<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00002.html#acbe59739eeb1c2247c0693ee0cb0aa50">translate</a> (<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">gli::format</a> Format, gli::swizzles const &amp;Swizzle) const </td></tr>
<tr class="memdesc:acbe59739eeb1c2247c0693ee0cb0aa50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert GLI formats into OpenGL texture formats. <br /></td></tr>
<tr class="separator:acbe59739eeb1c2247c0693ee0cb0aa50"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Translation class to convert GLI enums into OpenGL values. </p>
<p>Definition at line <a class="el" href="a00035_source.html#l00013">13</a> of file <a class="el" href="a00035_source.html">gl.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

304
external/gli/doc/api/a00003.html vendored 100644
View File

@ -0,0 +1,304 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: image Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00074.html">gli</a></li><li class="navelem"><a class="el" href="a00003.html">image</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00081.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">image Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Image, representation for a single texture level.
<a href="a00003.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ac8bb3912a3ce86b15842e79d0b421204"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8bb3912a3ce86b15842e79d0b421204"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00003.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a> ()</td></tr>
<tr class="memdesc:ac8bb3912a3ce86b15842e79d0b421204"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the entire image storage_linear with zeros. <br /></td></tr>
<tr class="separator:ac8bb3912a3ce86b15842e79d0b421204"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5bb9c1e1b03193fb5c6fabe39301110"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:ad5bb9c1e1b03193fb5c6fabe39301110"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00003.html#ad5bb9c1e1b03193fb5c6fabe39301110">clear</a> (genType const &amp;Texel)</td></tr>
<tr class="memdesc:ad5bb9c1e1b03193fb5c6fabe39301110"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the entire image storage_linear with Texel which type must match the image storage_linear format block size If the type of genType doesn't match the type of the image format, no conversion is performed and the data will be reinterpreted as if is was of the image format. <a href="#ad5bb9c1e1b03193fb5c6fabe39301110">More...</a><br /></td></tr>
<tr class="separator:ad5bb9c1e1b03193fb5c6fabe39301110"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f2c67dc864c6b6e705710853b5568ef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f2c67dc864c6b6e705710853b5568ef"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00003.html#a3f2c67dc864c6b6e705710853b5568ef">data</a> ()</td></tr>
<tr class="memdesc:a3f2c67dc864c6b6e705710853b5568ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the image instance data. <br /></td></tr>
<tr class="separator:a3f2c67dc864c6b6e705710853b5568ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec236abf7eac8ff4eec54eda033b9288"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec236abf7eac8ff4eec54eda033b9288"></a>
void const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00003.html#aec236abf7eac8ff4eec54eda033b9288">data</a> () const </td></tr>
<tr class="memdesc:aec236abf7eac8ff4eec54eda033b9288"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the image instance data. <br /></td></tr>
<tr class="separator:aec236abf7eac8ff4eec54eda033b9288"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a310f3ca6b342ecbcb22d0acc4eb3ae57"><td class="memTemplParams" colspan="2"><a class="anchor" id="a310f3ca6b342ecbcb22d0acc4eb3ae57"></a>
template&lt;typename genType &gt; </td></tr>
<tr class="memitem:a310f3ca6b342ecbcb22d0acc4eb3ae57"><td class="memTemplItemLeft" align="right" valign="top">genType *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00003.html#a310f3ca6b342ecbcb22d0acc4eb3ae57">data</a> ()</td></tr>
<tr class="memdesc:a310f3ca6b342ecbcb22d0acc4eb3ae57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the image format block size. <br /></td></tr>
<tr class="separator:a310f3ca6b342ecbcb22d0acc4eb3ae57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22b0feffbc4e89ad8fae247eb1424852"><td class="memTemplParams" colspan="2"><a class="anchor" id="a22b0feffbc4e89ad8fae247eb1424852"></a>
template&lt;typename genType &gt; </td></tr>
<tr class="memitem:a22b0feffbc4e89ad8fae247eb1424852"><td class="memTemplItemLeft" align="right" valign="top">genType const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00003.html#a22b0feffbc4e89ad8fae247eb1424852">data</a> () const </td></tr>
<tr class="memdesc:a22b0feffbc4e89ad8fae247eb1424852"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the image format block size. <br /></td></tr>
<tr class="separator:a22b0feffbc4e89ad8fae247eb1424852"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6e61de369e994009e36f344f99c15ad"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac6e61de369e994009e36f344f99c15ad"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00003.html#ac6e61de369e994009e36f344f99c15ad">empty</a> () const </td></tr>
<tr class="memdesc:ac6e61de369e994009e36f344f99c15ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether the image instance is empty, no storage_linear or description have been assigned to the instance. <br /></td></tr>
<tr class="separator:ac6e61de369e994009e36f344f99c15ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c9de4b32898ed383505745972d6c009"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4c9de4b32898ed383505745972d6c009"></a>
extent_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00003.html#a4c9de4b32898ed383505745972d6c009">extent</a> () const </td></tr>
<tr class="memdesc:a4c9de4b32898ed383505745972d6c009"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the dimensions of an image instance: width, height and depth. <br /></td></tr>
<tr class="separator:a4c9de4b32898ed383505745972d6c009"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad94928ca00873970455c1fb2d3c03fd8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad94928ca00873970455c1fb2d3c03fd8"></a>
<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00003.html#ad94928ca00873970455c1fb2d3c03fd8">format</a> () const </td></tr>
<tr class="memdesc:ad94928ca00873970455c1fb2d3c03fd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the image instance format. <br /></td></tr>
<tr class="separator:ad94928ca00873970455c1fb2d3c03fd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4f40c94d3427e415d291c68d3e67cfa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab4f40c94d3427e415d291c68d3e67cfa"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00003.html#ab4f40c94d3427e415d291c68d3e67cfa">image</a> ()</td></tr>
<tr class="memdesc:ab4f40c94d3427e415d291c68d3e67cfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty image instance. <br /></td></tr>
<tr class="separator:ab4f40c94d3427e415d291c68d3e67cfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a828b5030180522b6c967674f12085a91"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a828b5030180522b6c967674f12085a91"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00003.html#a828b5030180522b6c967674f12085a91">image</a> (<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent)</td></tr>
<tr class="memdesc:a828b5030180522b6c967674f12085a91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an image object and allocate an image storoge for it. <br /></td></tr>
<tr class="separator:a828b5030180522b6c967674f12085a91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab88ab938ed93fbb2e1cb9047aef29efa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00003.html#ab88ab938ed93fbb2e1cb9047aef29efa">image</a> (<a class="el" href="a00003.html">image</a> const &amp;Image, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format)</td></tr>
<tr class="memdesc:ab88ab938ed93fbb2e1cb9047aef29efa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an image object by sharing an existing image storage_linear from another image instance. <a href="#ab88ab938ed93fbb2e1cb9047aef29efa">More...</a><br /></td></tr>
<tr class="separator:ab88ab938ed93fbb2e1cb9047aef29efa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c04da2a2b96b59710315218eae1bf8b"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:a2c04da2a2b96b59710315218eae1bf8b"><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00003.html#a2c04da2a2b96b59710315218eae1bf8b">load</a> (extent_type const &amp;TexelCoord)</td></tr>
<tr class="memdesc:a2c04da2a2b96b59710315218eae1bf8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load the texel located at TexelCoord coordinates. <a href="#a2c04da2a2b96b59710315218eae1bf8b">More...</a><br /></td></tr>
<tr class="separator:a2c04da2a2b96b59710315218eae1bf8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a503ab01f6c0142145d3434f6924714e7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a503ab01f6c0142145d3434f6924714e7"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00003.html#a503ab01f6c0142145d3434f6924714e7">size</a> () const </td></tr>
<tr class="memdesc:a503ab01f6c0142145d3434f6924714e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of an image instance storage_linear in bytes. <br /></td></tr>
<tr class="separator:a503ab01f6c0142145d3434f6924714e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24789b8cce4dcbe8e0d3a47b68447aba"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:a24789b8cce4dcbe8e0d3a47b68447aba"><td class="memTemplItemLeft" align="right" valign="top">size_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00003.html#a24789b8cce4dcbe8e0d3a47b68447aba">size</a> () const </td></tr>
<tr class="memdesc:a24789b8cce4dcbe8e0d3a47b68447aba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of blocks contained in an image instance storage_linear. <a href="#a24789b8cce4dcbe8e0d3a47b68447aba">More...</a><br /></td></tr>
<tr class="separator:a24789b8cce4dcbe8e0d3a47b68447aba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d2a0cda41c9697b915f4c176ad77ef3"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:a0d2a0cda41c9697b915f4c176ad77ef3"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00003.html#a0d2a0cda41c9697b915f4c176ad77ef3">store</a> (extent_type const &amp;TexelCoord, genType const &amp;Data)</td></tr>
<tr class="memdesc:a0d2a0cda41c9697b915f4c176ad77ef3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store the texel located at TexelCoord coordinates. <a href="#a0d2a0cda41c9697b915f4c176ad77ef3">More...</a><br /></td></tr>
<tr class="separator:a0d2a0cda41c9697b915f4c176ad77ef3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Image, representation for a single texture level. </p>
<p>Definition at line <a class="el" href="a00037_source.html#l00011">11</a> of file <a class="el" href="a00037_source.html">image.hpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ab88ab938ed93fbb2e1cb9047aef29efa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00003.html">image</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00003.html">image</a> const &amp;&#160;</td>
<td class="paramname"><em>Image</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a>&#160;</td>
<td class="paramname"><em>Format</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Create an image object by sharing an existing image storage_linear from another image instance. </p>
<p>This image object is effectively an image view where format can be reinterpreted with a different compatible image format. For formats to be compatible, the block size of source and destination must match. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ad5bb9c1e1b03193fb5c6fabe39301110"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void clear </td>
<td>(</td>
<td class="paramtype">genType const &amp;&#160;</td>
<td class="paramname"><em>Texel</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Clear the entire image storage_linear with Texel which type must match the image storage_linear format block size If the type of genType doesn't match the type of the image format, no conversion is performed and the data will be reinterpreted as if is was of the image format. </p>
</div>
</div>
<a class="anchor" id="a2c04da2a2b96b59710315218eae1bf8b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">genType load </td>
<td>(</td>
<td class="paramtype">extent_type const &amp;&#160;</td>
<td class="paramname"><em>TexelCoord</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Load the texel located at TexelCoord coordinates. </p>
<p>It's an error to call this function if the format is compressed. It's an error if TexelCoord values aren't between [0, dimensions]. </p>
</div>
</div>
<a class="anchor" id="a24789b8cce4dcbe8e0d3a47b68447aba"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_type size </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the number of blocks contained in an image instance storage_linear. </p>
<p>genType size must match the block size conresponding to the image format. </p>
</div>
</div>
<a class="anchor" id="a0d2a0cda41c9697b915f4c176ad77ef3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void store </td>
<td>(</td>
<td class="paramtype">extent_type const &amp;&#160;</td>
<td class="paramname"><em>TexelCoord</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">genType const &amp;&#160;</td>
<td class="paramname"><em>Data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Store the texel located at TexelCoord coordinates. </p>
<p>It's an error to call this function if the format is compressed. It's an error if TexelCoord values aren't between [0, dimensions]. </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

126
external/gli/doc/api/a00004.html vendored 100644
View File

@ -0,0 +1,126 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: sampler Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00074.html">gli</a></li><li class="navelem"><a class="el" href="a00004.html">sampler</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="a00082.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">sampler Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Genetic sampler class.
<a href="a00004.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for sampler:</div>
<div class="dyncontent">
<div class="center">
<img src="a00004.png" usemap="#sampler_map" alt=""/>
<map id="sampler_map" name="sampler_map">
<area href="a00005.html" title="1d texture sampler " alt="sampler1d&lt; T, P &gt;" shape="rect" coords="0,56,177,80"/>
<area href="a00006.html" title="1d array texture sampler " alt="sampler1d_array&lt; T, P &gt;" shape="rect" coords="187,56,364,80"/>
<area href="a00007.html" title="2d texture sampler " alt="sampler2d&lt; T, P &gt;" shape="rect" coords="374,56,551,80"/>
<area href="a00008.html" title="2d array texture sampler " alt="sampler2d_array&lt; T, P &gt;" shape="rect" coords="561,56,738,80"/>
<area href="a00009.html" title="3d texture sampler " alt="sampler3d&lt; T, P &gt;" shape="rect" coords="748,56,925,80"/>
<area href="a00010.html" title="Cube map texture sampler. " alt="sampler_cube&lt; T, P &gt;" shape="rect" coords="935,56,1112,80"/>
<area href="a00011.html" title="Cube map array texture sampler. " alt="sampler_cube_array&lt; T, P &gt;" shape="rect" coords="1122,56,1299,80"/>
</map>
</div></div>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Genetic sampler class. </p>
<p>Definition at line <a class="el" href="a00047_source.html#l00033">33</a> of file <a class="el" href="a00047_source.html">sampler.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

BIN
external/gli/doc/api/a00004.png vendored 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

163
external/gli/doc/api/a00005.html vendored 100644
View File

@ -0,0 +1,163 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: sampler1d&lt; T, P &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00074.html">gli</a></li><li class="navelem"><a class="el" href="a00005.html">sampler1d</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00083.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">sampler1d&lt; T, P &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>1d texture sampler
<a href="a00005.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for sampler1d&lt; T, P &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00005.png" usemap="#sampler1d&lt; T, P &gt;_map" alt=""/>
<map id="sampler1d&lt; T, P &gt;_map" name="sampler1d&lt; T, P &gt;_map">
<area href="a00004.html" title="Genetic sampler class. " alt="sampler" shape="rect" coords="0,0,118,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:abad905c32fb058626def900ff40695a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abad905c32fb058626def900ff40695a3"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#abad905c32fb058626def900ff40695a3">clear</a> (texel_type const &amp;Texel)</td></tr>
<tr class="memdesc:abad905c32fb058626def900ff40695a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the sampler texture with a uniform texel. <br /></td></tr>
<tr class="separator:abad905c32fb058626def900ff40695a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b4699a70473cc6e74524f7cf9919c83"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6b4699a70473cc6e74524f7cf9919c83"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a6b4699a70473cc6e74524f7cf9919c83">generate_mipmaps</a> (<a class="el" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification)</td></tr>
<tr class="memdesc:a6b4699a70473cc6e74524f7cf9919c83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate all the mipmaps of the sampler texture from the texture base level. <br /></td></tr>
<tr class="separator:a6b4699a70473cc6e74524f7cf9919c83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad39ef81781788d02bfa8b73692402ecf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad39ef81781788d02bfa8b73692402ecf"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#ad39ef81781788d02bfa8b73692402ecf">generate_mipmaps</a> (size_type BaseLevel, size_type MaxLevel, <a class="el" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification)</td></tr>
<tr class="memdesc:ad39ef81781788d02bfa8b73692402ecf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate the mipmaps of the sampler texture from the texture base level to the texture max level included. <br /></td></tr>
<tr class="separator:ad39ef81781788d02bfa8b73692402ecf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b3f71f5e36f1319450875779976ad9f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b3f71f5e36f1319450875779976ad9f"></a>
<a class="el" href="a00013.html">texture_type</a> const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a4b3f71f5e36f1319450875779976ad9f">operator()</a> () const </td></tr>
<tr class="memdesc:a4b3f71f5e36f1319450875779976ad9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the sampler texture object. <br /></td></tr>
<tr class="separator:a4b3f71f5e36f1319450875779976ad9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeec05a81e342814d97816a294e5646c5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeec05a81e342814d97816a294e5646c5"></a>
texel_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#aeec05a81e342814d97816a294e5646c5">texel_fetch</a> (extent_type const &amp;TexelCoord, size_type const &amp;Level) const </td></tr>
<tr class="memdesc:aeec05a81e342814d97816a294e5646c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from the sampler texture. <br /></td></tr>
<tr class="separator:aeec05a81e342814d97816a294e5646c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30c7b58736bd2a8fdddffe6afa9fea92"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a30c7b58736bd2a8fdddffe6afa9fea92"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a30c7b58736bd2a8fdddffe6afa9fea92">texel_write</a> (extent_type const &amp;TexelCoord, size_type const &amp;Level, texel_type const &amp;Texel)</td></tr>
<tr class="memdesc:a30c7b58736bd2a8fdddffe6afa9fea92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel in the sampler texture. <br /></td></tr>
<tr class="separator:a30c7b58736bd2a8fdddffe6afa9fea92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f2d9c019cd68fba219e7579af7469c4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8f2d9c019cd68fba219e7579af7469c4"></a>
texel_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html#a8f2d9c019cd68fba219e7579af7469c4">texture_lod</a> (normalized_type const &amp;SampleCoord, level_type Level) const </td></tr>
<tr class="memdesc:a8f2d9c019cd68fba219e7579af7469c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sample the sampler texture at a specific level. <br /></td></tr>
<tr class="separator:a8f2d9c019cd68fba219e7579af7469c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T, precision P = defaultp&gt;<br />
class gli::sampler1d&lt; T, P &gt;</h3>
<p>1d texture sampler </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">T</td><td>Sampler can fetch, write and interpret any texture format but will expose and process the data through type T conversions. </td></tr>
<tr><td class="paramname">P</td><td>Precision in term of ULPs </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="a00048_source.html#l00017">17</a> of file <a class="el" href="a00048_source.html">sampler1d.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

BIN
external/gli/doc/api/a00005.png vendored 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 B

163
external/gli/doc/api/a00006.html vendored 100644
View File

@ -0,0 +1,163 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: sampler1d_array&lt; T, P &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00074.html">gli</a></li><li class="navelem"><a class="el" href="a00006.html">sampler1d_array</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00084.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">sampler1d_array&lt; T, P &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>1d array texture sampler
<a href="a00006.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for sampler1d_array&lt; T, P &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00006.png" usemap="#sampler1d_array&lt; T, P &gt;_map" alt=""/>
<map id="sampler1d_array&lt; T, P &gt;_map" name="sampler1d_array&lt; T, P &gt;_map">
<area href="a00004.html" title="Genetic sampler class. " alt="sampler" shape="rect" coords="0,0,156,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:abad905c32fb058626def900ff40695a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abad905c32fb058626def900ff40695a3"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00006.html#abad905c32fb058626def900ff40695a3">clear</a> (texel_type const &amp;Texel)</td></tr>
<tr class="memdesc:abad905c32fb058626def900ff40695a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the sampler texture with a uniform texel. <br /></td></tr>
<tr class="separator:abad905c32fb058626def900ff40695a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b4699a70473cc6e74524f7cf9919c83"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6b4699a70473cc6e74524f7cf9919c83"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00006.html#a6b4699a70473cc6e74524f7cf9919c83">generate_mipmaps</a> (<a class="el" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification)</td></tr>
<tr class="memdesc:a6b4699a70473cc6e74524f7cf9919c83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate all the mipmaps of the sampler texture from the texture base level. <br /></td></tr>
<tr class="separator:a6b4699a70473cc6e74524f7cf9919c83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58597eecdc5f6962ae99da719303d289"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a58597eecdc5f6962ae99da719303d289"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00006.html#a58597eecdc5f6962ae99da719303d289">generate_mipmaps</a> (size_type BaseLayer, size_type MaxLayer, size_type BaseLevel, size_type MaxLevel, <a class="el" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification)</td></tr>
<tr class="memdesc:a58597eecdc5f6962ae99da719303d289"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate the mipmaps of the sampler texture from the texture base level to the texture max level included. <br /></td></tr>
<tr class="separator:a58597eecdc5f6962ae99da719303d289"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b3f71f5e36f1319450875779976ad9f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b3f71f5e36f1319450875779976ad9f"></a>
<a class="el" href="a00014.html">texture_type</a> const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00006.html#a4b3f71f5e36f1319450875779976ad9f">operator()</a> () const </td></tr>
<tr class="memdesc:a4b3f71f5e36f1319450875779976ad9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the sampler texture object. <br /></td></tr>
<tr class="separator:a4b3f71f5e36f1319450875779976ad9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a0761f53665a561f7c28a28a7078352"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6a0761f53665a561f7c28a28a7078352"></a>
texel_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00006.html#a6a0761f53665a561f7c28a28a7078352">texel_fetch</a> (extent_type const &amp;TexelCoord, size_type layer, size_type Level) const </td></tr>
<tr class="memdesc:a6a0761f53665a561f7c28a28a7078352"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from the sampler texture. <br /></td></tr>
<tr class="separator:a6a0761f53665a561f7c28a28a7078352"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17df03e3b2bdfd95a830a0eeff90a64c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a17df03e3b2bdfd95a830a0eeff90a64c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00006.html#a17df03e3b2bdfd95a830a0eeff90a64c">texel_write</a> (extent_type const &amp;TexelCoord, size_type layer, size_type Level, texel_type const &amp;Texel)</td></tr>
<tr class="memdesc:a17df03e3b2bdfd95a830a0eeff90a64c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel in the sampler texture. <br /></td></tr>
<tr class="separator:a17df03e3b2bdfd95a830a0eeff90a64c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2045773bebfc6a573e499613316c4f07"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2045773bebfc6a573e499613316c4f07"></a>
texel_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00006.html#a2045773bebfc6a573e499613316c4f07">texture_lod</a> (normalized_type const &amp;SampleCoord, size_type layer, level_type Level) const </td></tr>
<tr class="memdesc:a2045773bebfc6a573e499613316c4f07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sample the sampler texture at a specific level. <br /></td></tr>
<tr class="separator:a2045773bebfc6a573e499613316c4f07"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T, precision P = defaultp&gt;<br />
class gli::sampler1d_array&lt; T, P &gt;</h3>
<p>1d array texture sampler </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">T</td><td>Sampler can fetch, write and interpret any texture format but will expose and process the data through type T conversions. </td></tr>
<tr><td class="paramname">P</td><td>Precision in term of ULPs </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="a00049_source.html#l00017">17</a> of file <a class="el" href="a00049_source.html">sampler1d_array.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

BIN
external/gli/doc/api/a00006.png vendored 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

163
external/gli/doc/api/a00007.html vendored 100644
View File

@ -0,0 +1,163 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: sampler2d&lt; T, P &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00074.html">gli</a></li><li class="navelem"><a class="el" href="a00007.html">sampler2d</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00085.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">sampler2d&lt; T, P &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>2d texture sampler
<a href="a00007.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for sampler2d&lt; T, P &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00007.png" usemap="#sampler2d&lt; T, P &gt;_map" alt=""/>
<map id="sampler2d&lt; T, P &gt;_map" name="sampler2d&lt; T, P &gt;_map">
<area href="a00004.html" title="Genetic sampler class. " alt="sampler" shape="rect" coords="0,0,118,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:abad905c32fb058626def900ff40695a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abad905c32fb058626def900ff40695a3"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00007.html#abad905c32fb058626def900ff40695a3">clear</a> (texel_type const &amp;Texel)</td></tr>
<tr class="memdesc:abad905c32fb058626def900ff40695a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the sampler texture with a uniform texel. <br /></td></tr>
<tr class="separator:abad905c32fb058626def900ff40695a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b4699a70473cc6e74524f7cf9919c83"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6b4699a70473cc6e74524f7cf9919c83"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00007.html#a6b4699a70473cc6e74524f7cf9919c83">generate_mipmaps</a> (<a class="el" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification)</td></tr>
<tr class="memdesc:a6b4699a70473cc6e74524f7cf9919c83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate all the mipmaps of the sampler texture from the texture base level. <br /></td></tr>
<tr class="separator:a6b4699a70473cc6e74524f7cf9919c83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad39ef81781788d02bfa8b73692402ecf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad39ef81781788d02bfa8b73692402ecf"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00007.html#ad39ef81781788d02bfa8b73692402ecf">generate_mipmaps</a> (size_type BaseLevel, size_type MaxLevel, <a class="el" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification)</td></tr>
<tr class="memdesc:ad39ef81781788d02bfa8b73692402ecf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate the mipmaps of the sampler texture from the texture base level to the texture max level included. <br /></td></tr>
<tr class="separator:ad39ef81781788d02bfa8b73692402ecf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b3f71f5e36f1319450875779976ad9f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b3f71f5e36f1319450875779976ad9f"></a>
<a class="el" href="a00015.html">texture_type</a> const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00007.html#a4b3f71f5e36f1319450875779976ad9f">operator()</a> () const </td></tr>
<tr class="memdesc:a4b3f71f5e36f1319450875779976ad9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the sampler texture object. <br /></td></tr>
<tr class="separator:a4b3f71f5e36f1319450875779976ad9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeec05a81e342814d97816a294e5646c5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeec05a81e342814d97816a294e5646c5"></a>
texel_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00007.html#aeec05a81e342814d97816a294e5646c5">texel_fetch</a> (extent_type const &amp;TexelCoord, size_type const &amp;Level) const </td></tr>
<tr class="memdesc:aeec05a81e342814d97816a294e5646c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from the sampler texture. <br /></td></tr>
<tr class="separator:aeec05a81e342814d97816a294e5646c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30c7b58736bd2a8fdddffe6afa9fea92"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a30c7b58736bd2a8fdddffe6afa9fea92"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00007.html#a30c7b58736bd2a8fdddffe6afa9fea92">texel_write</a> (extent_type const &amp;TexelCoord, size_type const &amp;Level, texel_type const &amp;Texel)</td></tr>
<tr class="memdesc:a30c7b58736bd2a8fdddffe6afa9fea92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel in the sampler texture. <br /></td></tr>
<tr class="separator:a30c7b58736bd2a8fdddffe6afa9fea92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f2d9c019cd68fba219e7579af7469c4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8f2d9c019cd68fba219e7579af7469c4"></a>
texel_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00007.html#a8f2d9c019cd68fba219e7579af7469c4">texture_lod</a> (normalized_type const &amp;SampleCoord, level_type Level) const </td></tr>
<tr class="memdesc:a8f2d9c019cd68fba219e7579af7469c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sample the sampler texture at a specific level. <br /></td></tr>
<tr class="separator:a8f2d9c019cd68fba219e7579af7469c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T, precision P = defaultp&gt;<br />
class gli::sampler2d&lt; T, P &gt;</h3>
<p>2d texture sampler </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">T</td><td>Sampler can fetch, write and interpret any texture format but will expose and process the data through type T conversions. </td></tr>
<tr><td class="paramname">P</td><td>Precision in term of ULPs </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="a00050_source.html#l00017">17</a> of file <a class="el" href="a00050_source.html">sampler2d.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

BIN
external/gli/doc/api/a00007.png vendored 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 B

163
external/gli/doc/api/a00008.html vendored 100644
View File

@ -0,0 +1,163 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: sampler2d_array&lt; T, P &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00074.html">gli</a></li><li class="navelem"><a class="el" href="a00008.html">sampler2d_array</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00086.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">sampler2d_array&lt; T, P &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>2d array texture sampler
<a href="a00008.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for sampler2d_array&lt; T, P &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00008.png" usemap="#sampler2d_array&lt; T, P &gt;_map" alt=""/>
<map id="sampler2d_array&lt; T, P &gt;_map" name="sampler2d_array&lt; T, P &gt;_map">
<area href="a00004.html" title="Genetic sampler class. " alt="sampler" shape="rect" coords="0,0,156,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:abad905c32fb058626def900ff40695a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abad905c32fb058626def900ff40695a3"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00008.html#abad905c32fb058626def900ff40695a3">clear</a> (texel_type const &amp;Texel)</td></tr>
<tr class="memdesc:abad905c32fb058626def900ff40695a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the sampler texture with a uniform texel. <br /></td></tr>
<tr class="separator:abad905c32fb058626def900ff40695a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b4699a70473cc6e74524f7cf9919c83"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6b4699a70473cc6e74524f7cf9919c83"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00008.html#a6b4699a70473cc6e74524f7cf9919c83">generate_mipmaps</a> (<a class="el" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification)</td></tr>
<tr class="memdesc:a6b4699a70473cc6e74524f7cf9919c83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate all the mipmaps of the sampler texture from the texture base level. <br /></td></tr>
<tr class="separator:a6b4699a70473cc6e74524f7cf9919c83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58597eecdc5f6962ae99da719303d289"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a58597eecdc5f6962ae99da719303d289"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00008.html#a58597eecdc5f6962ae99da719303d289">generate_mipmaps</a> (size_type BaseLayer, size_type MaxLayer, size_type BaseLevel, size_type MaxLevel, <a class="el" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification)</td></tr>
<tr class="memdesc:a58597eecdc5f6962ae99da719303d289"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate the mipmaps of the sampler texture from the texture base level to the texture max level included. <br /></td></tr>
<tr class="separator:a58597eecdc5f6962ae99da719303d289"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b3f71f5e36f1319450875779976ad9f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b3f71f5e36f1319450875779976ad9f"></a>
<a class="el" href="a00016.html">texture_type</a> const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00008.html#a4b3f71f5e36f1319450875779976ad9f">operator()</a> () const </td></tr>
<tr class="memdesc:a4b3f71f5e36f1319450875779976ad9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the sampler texture object. <br /></td></tr>
<tr class="separator:a4b3f71f5e36f1319450875779976ad9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a0761f53665a561f7c28a28a7078352"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6a0761f53665a561f7c28a28a7078352"></a>
texel_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00008.html#a6a0761f53665a561f7c28a28a7078352">texel_fetch</a> (extent_type const &amp;TexelCoord, size_type layer, size_type Level) const </td></tr>
<tr class="memdesc:a6a0761f53665a561f7c28a28a7078352"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from the sampler texture. <br /></td></tr>
<tr class="separator:a6a0761f53665a561f7c28a28a7078352"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17df03e3b2bdfd95a830a0eeff90a64c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a17df03e3b2bdfd95a830a0eeff90a64c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00008.html#a17df03e3b2bdfd95a830a0eeff90a64c">texel_write</a> (extent_type const &amp;TexelCoord, size_type layer, size_type Level, texel_type const &amp;Texel)</td></tr>
<tr class="memdesc:a17df03e3b2bdfd95a830a0eeff90a64c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel in the sampler texture. <br /></td></tr>
<tr class="separator:a17df03e3b2bdfd95a830a0eeff90a64c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2045773bebfc6a573e499613316c4f07"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2045773bebfc6a573e499613316c4f07"></a>
texel_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00008.html#a2045773bebfc6a573e499613316c4f07">texture_lod</a> (normalized_type const &amp;SampleCoord, size_type layer, level_type Level) const </td></tr>
<tr class="memdesc:a2045773bebfc6a573e499613316c4f07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sample the sampler texture at a specific level. <br /></td></tr>
<tr class="separator:a2045773bebfc6a573e499613316c4f07"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T, precision P = defaultp&gt;<br />
class gli::sampler2d_array&lt; T, P &gt;</h3>
<p>2d array texture sampler </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">T</td><td>Sampler can fetch, write and interpret any texture format but will expose and process the data through type T conversions. </td></tr>
<tr><td class="paramname">P</td><td>Precision in term of ULPs </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="a00051_source.html#l00017">17</a> of file <a class="el" href="a00051_source.html">sampler2d_array.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

BIN
external/gli/doc/api/a00008.png vendored 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 B

163
external/gli/doc/api/a00009.html vendored 100644
View File

@ -0,0 +1,163 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: sampler3d&lt; T, P &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00074.html">gli</a></li><li class="navelem"><a class="el" href="a00009.html">sampler3d</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00087.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">sampler3d&lt; T, P &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>3d texture sampler
<a href="a00009.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for sampler3d&lt; T, P &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00009.png" usemap="#sampler3d&lt; T, P &gt;_map" alt=""/>
<map id="sampler3d&lt; T, P &gt;_map" name="sampler3d&lt; T, P &gt;_map">
<area href="a00004.html" title="Genetic sampler class. " alt="sampler" shape="rect" coords="0,0,118,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:abad905c32fb058626def900ff40695a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abad905c32fb058626def900ff40695a3"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00009.html#abad905c32fb058626def900ff40695a3">clear</a> (texel_type const &amp;Texel)</td></tr>
<tr class="memdesc:abad905c32fb058626def900ff40695a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the sampler texture with a uniform texel. <br /></td></tr>
<tr class="separator:abad905c32fb058626def900ff40695a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b4699a70473cc6e74524f7cf9919c83"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6b4699a70473cc6e74524f7cf9919c83"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00009.html#a6b4699a70473cc6e74524f7cf9919c83">generate_mipmaps</a> (<a class="el" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification)</td></tr>
<tr class="memdesc:a6b4699a70473cc6e74524f7cf9919c83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate all the mipmaps of the sampler texture from the texture base level. <br /></td></tr>
<tr class="separator:a6b4699a70473cc6e74524f7cf9919c83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad39ef81781788d02bfa8b73692402ecf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad39ef81781788d02bfa8b73692402ecf"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00009.html#ad39ef81781788d02bfa8b73692402ecf">generate_mipmaps</a> (size_type BaseLevel, size_type MaxLevel, <a class="el" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification)</td></tr>
<tr class="memdesc:ad39ef81781788d02bfa8b73692402ecf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate the mipmaps of the sampler texture from the texture base level to the texture max level included. <br /></td></tr>
<tr class="separator:ad39ef81781788d02bfa8b73692402ecf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b3f71f5e36f1319450875779976ad9f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b3f71f5e36f1319450875779976ad9f"></a>
<a class="el" href="a00017.html">texture_type</a> const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00009.html#a4b3f71f5e36f1319450875779976ad9f">operator()</a> () const </td></tr>
<tr class="memdesc:a4b3f71f5e36f1319450875779976ad9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the sampler texture object. <br /></td></tr>
<tr class="separator:a4b3f71f5e36f1319450875779976ad9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeec05a81e342814d97816a294e5646c5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeec05a81e342814d97816a294e5646c5"></a>
texel_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00009.html#aeec05a81e342814d97816a294e5646c5">texel_fetch</a> (extent_type const &amp;TexelCoord, size_type const &amp;Level) const </td></tr>
<tr class="memdesc:aeec05a81e342814d97816a294e5646c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from the sampler texture. <br /></td></tr>
<tr class="separator:aeec05a81e342814d97816a294e5646c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30c7b58736bd2a8fdddffe6afa9fea92"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a30c7b58736bd2a8fdddffe6afa9fea92"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00009.html#a30c7b58736bd2a8fdddffe6afa9fea92">texel_write</a> (extent_type const &amp;TexelCoord, size_type const &amp;Level, texel_type const &amp;Texel)</td></tr>
<tr class="memdesc:a30c7b58736bd2a8fdddffe6afa9fea92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel in the sampler texture. <br /></td></tr>
<tr class="separator:a30c7b58736bd2a8fdddffe6afa9fea92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f2d9c019cd68fba219e7579af7469c4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8f2d9c019cd68fba219e7579af7469c4"></a>
texel_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00009.html#a8f2d9c019cd68fba219e7579af7469c4">texture_lod</a> (normalized_type const &amp;SampleCoord, level_type Level) const </td></tr>
<tr class="memdesc:a8f2d9c019cd68fba219e7579af7469c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sample the sampler texture at a specific level. <br /></td></tr>
<tr class="separator:a8f2d9c019cd68fba219e7579af7469c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T, precision P = defaultp&gt;<br />
class gli::sampler3d&lt; T, P &gt;</h3>
<p>3d texture sampler </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">T</td><td>Sampler can fetch, write and interpret any texture format but will expose and process the data through type T conversions. </td></tr>
<tr><td class="paramname">P</td><td>Precision in term of ULPs </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="a00052_source.html#l00017">17</a> of file <a class="el" href="a00052_source.html">sampler3d.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

BIN
external/gli/doc/api/a00009.png vendored 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 496 B

163
external/gli/doc/api/a00010.html vendored 100644
View File

@ -0,0 +1,163 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: sampler_cube&lt; T, P &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00074.html">gli</a></li><li class="navelem"><a class="el" href="a00010.html">sampler_cube</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00088.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">sampler_cube&lt; T, P &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Cube map texture sampler.
<a href="a00010.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for sampler_cube&lt; T, P &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00010.png" usemap="#sampler_cube&lt; T, P &gt;_map" alt=""/>
<map id="sampler_cube&lt; T, P &gt;_map" name="sampler_cube&lt; T, P &gt;_map">
<area href="a00004.html" title="Genetic sampler class. " alt="sampler" shape="rect" coords="0,0,139,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:abad905c32fb058626def900ff40695a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abad905c32fb058626def900ff40695a3"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#abad905c32fb058626def900ff40695a3">clear</a> (texel_type const &amp;Texel)</td></tr>
<tr class="memdesc:abad905c32fb058626def900ff40695a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the sampler texture with a uniform texel. <br /></td></tr>
<tr class="separator:abad905c32fb058626def900ff40695a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b4699a70473cc6e74524f7cf9919c83"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6b4699a70473cc6e74524f7cf9919c83"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a6b4699a70473cc6e74524f7cf9919c83">generate_mipmaps</a> (<a class="el" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification)</td></tr>
<tr class="memdesc:a6b4699a70473cc6e74524f7cf9919c83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate all the mipmaps of the sampler texture from the texture base level. <br /></td></tr>
<tr class="separator:a6b4699a70473cc6e74524f7cf9919c83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d26b662b00425583b9191412e0e6b2e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5d26b662b00425583b9191412e0e6b2e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a5d26b662b00425583b9191412e0e6b2e">generate_mipmaps</a> (size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, <a class="el" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification)</td></tr>
<tr class="memdesc:a5d26b662b00425583b9191412e0e6b2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate the mipmaps of the sampler texture from the texture base level to the texture max level included. <br /></td></tr>
<tr class="separator:a5d26b662b00425583b9191412e0e6b2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b3f71f5e36f1319450875779976ad9f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b3f71f5e36f1319450875779976ad9f"></a>
<a class="el" href="a00018.html">texture_type</a> const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a4b3f71f5e36f1319450875779976ad9f">operator()</a> () const </td></tr>
<tr class="memdesc:a4b3f71f5e36f1319450875779976ad9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the sampler texture object. <br /></td></tr>
<tr class="separator:a4b3f71f5e36f1319450875779976ad9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c5b6ce6ebc1ed7fd08de6d750b132e1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3c5b6ce6ebc1ed7fd08de6d750b132e1"></a>
texel_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a3c5b6ce6ebc1ed7fd08de6d750b132e1">texel_fetch</a> (extent_type const &amp;TexelCoord, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:a3c5b6ce6ebc1ed7fd08de6d750b132e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from the sampler texture. <br /></td></tr>
<tr class="separator:a3c5b6ce6ebc1ed7fd08de6d750b132e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab861bc6f1c158693dbad974235dfb8f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aab861bc6f1c158693dbad974235dfb8f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#aab861bc6f1c158693dbad974235dfb8f">texel_write</a> (extent_type const &amp;TexelCoord, size_type Face, size_type Level, texel_type const &amp;Texel)</td></tr>
<tr class="memdesc:aab861bc6f1c158693dbad974235dfb8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel in the sampler texture. <br /></td></tr>
<tr class="separator:aab861bc6f1c158693dbad974235dfb8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a414636f8dc1b4009d7df6edd10bb9d48"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a414636f8dc1b4009d7df6edd10bb9d48"></a>
texel_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a414636f8dc1b4009d7df6edd10bb9d48">texture_lod</a> (normalized_type const &amp;SampleCoord, size_type Face, level_type Level) const </td></tr>
<tr class="memdesc:a414636f8dc1b4009d7df6edd10bb9d48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sample the sampler texture at a specific level. <br /></td></tr>
<tr class="separator:a414636f8dc1b4009d7df6edd10bb9d48"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T, precision P = defaultp&gt;<br />
class gli::sampler_cube&lt; T, P &gt;</h3>
<p>Cube map texture sampler. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">T</td><td>Sampler can fetch, write and interpret any texture format but will expose and process the data through type T conversions. </td></tr>
<tr><td class="paramname">P</td><td>Precision in term of ULPs </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="a00053_source.html#l00017">17</a> of file <a class="el" href="a00053_source.html">sampler_cube.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

BIN
external/gli/doc/api/a00010.png vendored 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 B

163
external/gli/doc/api/a00011.html vendored 100644
View File

@ -0,0 +1,163 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: sampler_cube_array&lt; T, P &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00074.html">gli</a></li><li class="navelem"><a class="el" href="a00011.html">sampler_cube_array</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00089.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">sampler_cube_array&lt; T, P &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Cube map array texture sampler.
<a href="a00011.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for sampler_cube_array&lt; T, P &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="a00011.png" usemap="#sampler_cube_array&lt; T, P &gt;_map" alt=""/>
<map id="sampler_cube_array&lt; T, P &gt;_map" name="sampler_cube_array&lt; T, P &gt;_map">
<area href="a00004.html" title="Genetic sampler class. " alt="sampler" shape="rect" coords="0,0,177,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:abad905c32fb058626def900ff40695a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abad905c32fb058626def900ff40695a3"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#abad905c32fb058626def900ff40695a3">clear</a> (texel_type const &amp;Texel)</td></tr>
<tr class="memdesc:abad905c32fb058626def900ff40695a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the sampler texture with a uniform texel. <br /></td></tr>
<tr class="separator:abad905c32fb058626def900ff40695a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b4699a70473cc6e74524f7cf9919c83"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6b4699a70473cc6e74524f7cf9919c83"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#a6b4699a70473cc6e74524f7cf9919c83">generate_mipmaps</a> (<a class="el" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification)</td></tr>
<tr class="memdesc:a6b4699a70473cc6e74524f7cf9919c83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate all the mipmaps of the sampler texture from the texture base level. <br /></td></tr>
<tr class="separator:a6b4699a70473cc6e74524f7cf9919c83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3384e6d71c723e976bb7b6a3f5d2f848"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3384e6d71c723e976bb7b6a3f5d2f848"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#a3384e6d71c723e976bb7b6a3f5d2f848">generate_mipmaps</a> (size_type BaseLayer, size_type MaxLayer, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, <a class="el" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification)</td></tr>
<tr class="memdesc:a3384e6d71c723e976bb7b6a3f5d2f848"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate the mipmaps of the sampler texture from the texture base level to the texture max level included. <br /></td></tr>
<tr class="separator:a3384e6d71c723e976bb7b6a3f5d2f848"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b3f71f5e36f1319450875779976ad9f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b3f71f5e36f1319450875779976ad9f"></a>
<a class="el" href="a00019.html">texture_type</a> const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#a4b3f71f5e36f1319450875779976ad9f">operator()</a> () const </td></tr>
<tr class="memdesc:a4b3f71f5e36f1319450875779976ad9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the sampler texture object. <br /></td></tr>
<tr class="separator:a4b3f71f5e36f1319450875779976ad9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c52b645f42105b75629ef2b20891e5b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4c52b645f42105b75629ef2b20891e5b"></a>
texel_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#a4c52b645f42105b75629ef2b20891e5b">texel_fetch</a> (extent_type const &amp;TexelCoord, size_type layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:a4c52b645f42105b75629ef2b20891e5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from the sampler texture. <br /></td></tr>
<tr class="separator:a4c52b645f42105b75629ef2b20891e5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cf389ce5d8247cb23921660a8d24d39"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1cf389ce5d8247cb23921660a8d24d39"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#a1cf389ce5d8247cb23921660a8d24d39">texel_write</a> (extent_type const &amp;TexelCoord, size_type layer, size_type Face, size_type Level, texel_type const &amp;Texel)</td></tr>
<tr class="memdesc:a1cf389ce5d8247cb23921660a8d24d39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel in the sampler texture. <br /></td></tr>
<tr class="separator:a1cf389ce5d8247cb23921660a8d24d39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05d92527e03915a13acbacbb2f2127ea"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a05d92527e03915a13acbacbb2f2127ea"></a>
texel_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#a05d92527e03915a13acbacbb2f2127ea">texture_lod</a> (normalized_type const &amp;SampleCoord, size_type layer, size_type Face, level_type Level) const </td></tr>
<tr class="memdesc:a05d92527e03915a13acbacbb2f2127ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sample the sampler texture at a specific level. <br /></td></tr>
<tr class="separator:a05d92527e03915a13acbacbb2f2127ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T, precision P = defaultp&gt;<br />
class gli::sampler_cube_array&lt; T, P &gt;</h3>
<p>Cube map array texture sampler. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">T</td><td>Sampler can fetch, write and interpret any texture format but will expose and process the data through type T conversions. </td></tr>
<tr><td class="paramname">P</td><td>Precision in term of ULPs </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="a00054_source.html#l00017">17</a> of file <a class="el" href="a00054_source.html">sampler_cube_array.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

BIN
external/gli/doc/api/a00011.png vendored 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 B

534
external/gli/doc/api/a00012.html vendored 100644
View File

@ -0,0 +1,534 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: texture Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00074.html">gli</a></li><li class="navelem"><a class="el" href="a00012.html">texture</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00090.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">texture Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Genetic texture class. It can support any target.
<a href="a00012.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for texture:</div>
<div class="dyncontent">
<div class="center">
<img src="a00012.png" usemap="#texture_map" alt=""/>
<map id="texture_map" name="texture_map">
<area href="a00013.html" title="1d texture " alt="texture1d" shape="rect" coords="0,56,123,80"/>
<area href="a00014.html" title="1d array texture " alt="texture1d_array" shape="rect" coords="133,56,256,80"/>
<area href="a00015.html" title="2d texture " alt="texture2d" shape="rect" coords="266,56,389,80"/>
<area href="a00016.html" title="2d array texture " alt="texture2d_array" shape="rect" coords="399,56,522,80"/>
<area href="a00017.html" title="3d texture " alt="texture3d" shape="rect" coords="532,56,655,80"/>
<area href="a00018.html" title="Cube map texture. " alt="texture_cube" shape="rect" coords="665,56,788,80"/>
<area href="a00019.html" title="Cube map array texture. " alt="texture_cube_array" shape="rect" coords="798,56,921,80"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ae7c1f35cf657c7bbe9eae2b39e44f728"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7c1f35cf657c7bbe9eae2b39e44f728"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ae7c1f35cf657c7bbe9eae2b39e44f728">base_face</a> () const </td></tr>
<tr class="memdesc:ae7c1f35cf657c7bbe9eae2b39e44f728"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base face of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the faces. <br /></td></tr>
<tr class="separator:ae7c1f35cf657c7bbe9eae2b39e44f728"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1aeb020d8f82035e607b209c3841dee2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1aeb020d8f82035e607b209c3841dee2"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a1aeb020d8f82035e607b209c3841dee2">base_layer</a> () const </td></tr>
<tr class="memdesc:a1aeb020d8f82035e607b209c3841dee2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base layer of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the layers. <br /></td></tr>
<tr class="separator:a1aeb020d8f82035e607b209c3841dee2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01c07293e367b293736943e92f6a9e98"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01c07293e367b293736943e92f6a9e98"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a01c07293e367b293736943e92f6a9e98">base_level</a> () const </td></tr>
<tr class="memdesc:a01c07293e367b293736943e92f6a9e98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base level of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the levels. <br /></td></tr>
<tr class="separator:a01c07293e367b293736943e92f6a9e98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8bb3912a3ce86b15842e79d0b421204"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8bb3912a3ce86b15842e79d0b421204"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a> ()</td></tr>
<tr class="memdesc:ac8bb3912a3ce86b15842e79d0b421204"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the entire texture storage_linear with zeros. <br /></td></tr>
<tr class="separator:ac8bb3912a3ce86b15842e79d0b421204"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5430e0073bc8a24264b7133f25f0edec"><td class="memTemplParams" colspan="2">template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a5430e0073bc8a24264b7133f25f0edec"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a5430e0073bc8a24264b7133f25f0edec">clear</a> (gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a5430e0073bc8a24264b7133f25f0edec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the entire texture storage_linear with Texel which type must match the texture storage_linear format block size If the type of gen_type doesn't match the type of the texture format, no conversion is performed and the data will be reinterpreted as if is was of the texture format. <a href="#a5430e0073bc8a24264b7133f25f0edec">More...</a><br /></td></tr>
<tr class="separator:a5430e0073bc8a24264b7133f25f0edec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54710883dcdf8a8f8f9bfc13e9dd5398"><td class="memTemplParams" colspan="2"><a class="anchor" id="a54710883dcdf8a8f8f9bfc13e9dd5398"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a54710883dcdf8a8f8f9bfc13e9dd5398"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a54710883dcdf8a8f8f9bfc13e9dd5398">clear</a> (size_type Layer, size_type Face, size_type Level, gen_type const &amp;BlockData)</td></tr>
<tr class="memdesc:a54710883dcdf8a8f8f9bfc13e9dd5398"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a specific image of a texture. <br /></td></tr>
<tr class="separator:a54710883dcdf8a8f8f9bfc13e9dd5398"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1df5aef4908916286c693427ae042eca"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1df5aef4908916286c693427ae042eca"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a1df5aef4908916286c693427ae042eca"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a1df5aef4908916286c693427ae042eca">clear</a> (size_type Layer, size_type Face, size_type Level, extent_type const &amp;TexelOffset, extent_type const &amp;TexelExtent, gen_type const &amp;BlockData)</td></tr>
<tr class="memdesc:a1df5aef4908916286c693427ae042eca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a subset of a specific image of a texture. <br /></td></tr>
<tr class="separator:a1df5aef4908916286c693427ae042eca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade92aae99ac3524a83809acdfd8c0715"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade92aae99ac3524a83809acdfd8c0715"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ade92aae99ac3524a83809acdfd8c0715">copy</a> (<a class="el" href="a00012.html">texture</a> const &amp;TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, size_t LayerDst, size_t FaceDst, size_t LevelDst)</td></tr>
<tr class="memdesc:ade92aae99ac3524a83809acdfd8c0715"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a specific image of a texture. <br /></td></tr>
<tr class="separator:ade92aae99ac3524a83809acdfd8c0715"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace50b0c766f3c82847eda49459eec7e0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace50b0c766f3c82847eda49459eec7e0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ace50b0c766f3c82847eda49459eec7e0">copy</a> (<a class="el" href="a00012.html">texture</a> const &amp;TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, extent_type const &amp;OffsetSrc, size_t LayerDst, size_t FaceDst, size_t LevelDst, extent_type const &amp;OffsetDst, extent_type const &amp;Extent)</td></tr>
<tr class="memdesc:ace50b0c766f3c82847eda49459eec7e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a subset of a specific image of a texture. <br /></td></tr>
<tr class="separator:ace50b0c766f3c82847eda49459eec7e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f2c67dc864c6b6e705710853b5568ef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f2c67dc864c6b6e705710853b5568ef"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3f2c67dc864c6b6e705710853b5568ef">data</a> ()</td></tr>
<tr class="memdesc:a3f2c67dc864c6b6e705710853b5568ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:a3f2c67dc864c6b6e705710853b5568ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecfb33a652ea3f984735a031e4af697f"><td class="memTemplParams" colspan="2"><a class="anchor" id="aecfb33a652ea3f984735a031e4af697f"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:aecfb33a652ea3f984735a031e4af697f"><td class="memTemplItemLeft" align="right" valign="top">gen_type *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#aecfb33a652ea3f984735a031e4af697f">data</a> ()</td></tr>
<tr class="memdesc:aecfb33a652ea3f984735a031e4af697f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:aecfb33a652ea3f984735a031e4af697f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec236abf7eac8ff4eec54eda033b9288"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec236abf7eac8ff4eec54eda033b9288"></a>
void const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aec236abf7eac8ff4eec54eda033b9288">data</a> () const </td></tr>
<tr class="memdesc:aec236abf7eac8ff4eec54eda033b9288"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:aec236abf7eac8ff4eec54eda033b9288"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c538fecdc895b20bbd61890bffe0fdb"><td class="memTemplParams" colspan="2"><a class="anchor" id="a8c538fecdc895b20bbd61890bffe0fdb"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a8c538fecdc895b20bbd61890bffe0fdb"><td class="memTemplItemLeft" align="right" valign="top">gen_type const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a8c538fecdc895b20bbd61890bffe0fdb">data</a> () const </td></tr>
<tr class="memdesc:a8c538fecdc895b20bbd61890bffe0fdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a8c538fecdc895b20bbd61890bffe0fdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76d02b884284dee754400f17bb7f5053"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a76d02b884284dee754400f17bb7f5053"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a76d02b884284dee754400f17bb7f5053">data</a> (size_type Layer, size_type Face, size_type Level)</td></tr>
<tr class="memdesc:a76d02b884284dee754400f17bb7f5053"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:a76d02b884284dee754400f17bb7f5053"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad0d21d1d0e5888e0d546dc585d30249"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad0d21d1d0e5888e0d546dc585d30249"></a>
void const *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aad0d21d1d0e5888e0d546dc585d30249">data</a> (size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:aad0d21d1d0e5888e0d546dc585d30249"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:aad0d21d1d0e5888e0d546dc585d30249"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42214ff33bec0fa5dd52c2b0df7dcdbe"><td class="memTemplParams" colspan="2"><a class="anchor" id="a42214ff33bec0fa5dd52c2b0df7dcdbe"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a42214ff33bec0fa5dd52c2b0df7dcdbe"><td class="memTemplItemLeft" align="right" valign="top">gen_type *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a42214ff33bec0fa5dd52c2b0df7dcdbe">data</a> (size_type Layer, size_type Face, size_type Level)</td></tr>
<tr class="memdesc:a42214ff33bec0fa5dd52c2b0df7dcdbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a42214ff33bec0fa5dd52c2b0df7dcdbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a272d7f02634851f003d81a25407ba782"><td class="memTemplParams" colspan="2"><a class="anchor" id="a272d7f02634851f003d81a25407ba782"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a272d7f02634851f003d81a25407ba782"><td class="memTemplItemLeft" align="right" valign="top">gen_type const *const&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a272d7f02634851f003d81a25407ba782">data</a> (size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:a272d7f02634851f003d81a25407ba782"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a272d7f02634851f003d81a25407ba782"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6e61de369e994009e36f344f99c15ad"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac6e61de369e994009e36f344f99c15ad"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ac6e61de369e994009e36f344f99c15ad">empty</a> () const </td></tr>
<tr class="memdesc:ac6e61de369e994009e36f344f99c15ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether the texture instance is empty, no storage_type or description have been assigned to the instance. <br /></td></tr>
<tr class="separator:ac6e61de369e994009e36f344f99c15ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9122bf87edd23bd731bd9eaf072e757"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9122bf87edd23bd731bd9eaf072e757"></a>
extent_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aa9122bf87edd23bd731bd9eaf072e757">extent</a> (size_type Level=0) const </td></tr>
<tr class="memdesc:aa9122bf87edd23bd731bd9eaf072e757"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the size of a texture instance: width, height and depth. <br /></td></tr>
<tr class="separator:aa9122bf87edd23bd731bd9eaf072e757"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3914cdf138e9267662ac7147fe71d644"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3914cdf138e9267662ac7147fe71d644"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3914cdf138e9267662ac7147fe71d644">faces</a> () const </td></tr>
<tr class="memdesc:a3914cdf138e9267662ac7147fe71d644"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#aa18daf8e8534d4cefabf3b7dfd43a6f3" title="Return the max face of the texture instance, effectively a memory offset to the beginning of the last...">max_face()</a> - <a class="el" href="a00012.html#ae7c1f35cf657c7bbe9eae2b39e44f728" title="Return the base face of the texture instance, effectively a memory offset in the actual texture stora...">base_face()</a> + 1. <br /></td></tr>
<tr class="separator:a3914cdf138e9267662ac7147fe71d644"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad94928ca00873970455c1fb2d3c03fd8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad94928ca00873970455c1fb2d3c03fd8"></a>
<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ad94928ca00873970455c1fb2d3c03fd8">format</a> () const </td></tr>
<tr class="memdesc:ad94928ca00873970455c1fb2d3c03fd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the texture instance format. <br /></td></tr>
<tr class="separator:ad94928ca00873970455c1fb2d3c03fd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac4e6a627c907856620b7eb161c9b85d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac4e6a627c907856620b7eb161c9b85d"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aac4e6a627c907856620b7eb161c9b85d">layers</a> () const </td></tr>
<tr class="memdesc:aac4e6a627c907856620b7eb161c9b85d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#af8ae0072dcfb583fcd278650b3f55ec6" title="Return the max layer of the texture instance, effectively a memory offset to the beginning of the las...">max_layer()</a> - <a class="el" href="a00012.html#a1aeb020d8f82035e607b209c3841dee2" title="Return the base layer of the texture instance, effectively a memory offset in the actual texture stor...">base_layer()</a> + 1. <br /></td></tr>
<tr class="separator:aac4e6a627c907856620b7eb161c9b85d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b85eb415046f5a31b2d9eff8cefc24c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9b85eb415046f5a31b2d9eff8cefc24c"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9b85eb415046f5a31b2d9eff8cefc24c">levels</a> () const </td></tr>
<tr class="memdesc:a9b85eb415046f5a31b2d9eff8cefc24c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#ae174e356683cee9bf9d3e11df4d6f78a" title="Return the max level of the texture instance, effectively a memory offset to the beginning of the las...">max_level()</a> - <a class="el" href="a00012.html#a01c07293e367b293736943e92f6a9e98" title="Return the base level of the texture instance, effectively a memory offset in the actual texture stor...">base_level()</a> + 1. <br /></td></tr>
<tr class="separator:a9b85eb415046f5a31b2d9eff8cefc24c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a643d8893b84d50b7a3c7fc53b218da8a"><td class="memTemplParams" colspan="2"><a class="anchor" id="a643d8893b84d50b7a3c7fc53b218da8a"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a643d8893b84d50b7a3c7fc53b218da8a"><td class="memTemplItemLeft" align="right" valign="top">gen_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a643d8893b84d50b7a3c7fc53b218da8a">load</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:a643d8893b84d50b7a3c7fc53b218da8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a643d8893b84d50b7a3c7fc53b218da8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa18daf8e8534d4cefabf3b7dfd43a6f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa18daf8e8534d4cefabf3b7dfd43a6f3"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aa18daf8e8534d4cefabf3b7dfd43a6f3">max_face</a> () const </td></tr>
<tr class="memdesc:aa18daf8e8534d4cefabf3b7dfd43a6f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max face of the texture instance, effectively a memory offset to the beginning of the last face in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:aa18daf8e8534d4cefabf3b7dfd43a6f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8ae0072dcfb583fcd278650b3f55ec6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8ae0072dcfb583fcd278650b3f55ec6"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#af8ae0072dcfb583fcd278650b3f55ec6">max_layer</a> () const </td></tr>
<tr class="memdesc:af8ae0072dcfb583fcd278650b3f55ec6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max layer of the texture instance, effectively a memory offset to the beginning of the last layer in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:af8ae0072dcfb583fcd278650b3f55ec6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae174e356683cee9bf9d3e11df4d6f78a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae174e356683cee9bf9d3e11df4d6f78a"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ae174e356683cee9bf9d3e11df4d6f78a">max_level</a> () const </td></tr>
<tr class="memdesc:ae174e356683cee9bf9d3e11df4d6f78a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max level of the texture instance, effectively a memory offset to the beginning of the last level in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:ae174e356683cee9bf9d3e11df4d6f78a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a503ab01f6c0142145d3434f6924714e7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a503ab01f6c0142145d3434f6924714e7"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a503ab01f6c0142145d3434f6924714e7">size</a> () const </td></tr>
<tr class="memdesc:a503ab01f6c0142145d3434f6924714e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a texture instance storage_type in bytes. <br /></td></tr>
<tr class="separator:a503ab01f6c0142145d3434f6924714e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24789b8cce4dcbe8e0d3a47b68447aba"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:a24789b8cce4dcbe8e0d3a47b68447aba"><td class="memTemplItemLeft" align="right" valign="top">size_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a24789b8cce4dcbe8e0d3a47b68447aba">size</a> () const </td></tr>
<tr class="memdesc:a24789b8cce4dcbe8e0d3a47b68447aba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of blocks contained in a texture instance storage_type. <a href="#a24789b8cce4dcbe8e0d3a47b68447aba">More...</a><br /></td></tr>
<tr class="separator:a24789b8cce4dcbe8e0d3a47b68447aba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46f11d7b73797c3e4b9a6da00f505fd8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a46f11d7b73797c3e4b9a6da00f505fd8"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a46f11d7b73797c3e4b9a6da00f505fd8">size</a> (size_type Level) const </td></tr>
<tr class="memdesc:a46f11d7b73797c3e4b9a6da00f505fd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a specific level identified by Level. <br /></td></tr>
<tr class="separator:a46f11d7b73797c3e4b9a6da00f505fd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a665df3b51266310cd164cd5aa9c6e80e"><td class="memTemplParams" colspan="2">template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a665df3b51266310cd164cd5aa9c6e80e"><td class="memTemplItemLeft" align="right" valign="top">size_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a665df3b51266310cd164cd5aa9c6e80e">size</a> (size_type Level) const </td></tr>
<tr class="memdesc:a665df3b51266310cd164cd5aa9c6e80e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a specific level identified by Level. <a href="#a665df3b51266310cd164cd5aa9c6e80e">More...</a><br /></td></tr>
<tr class="separator:a665df3b51266310cd164cd5aa9c6e80e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a290419a437522cfe1981880fbfd9f810"><td class="memTemplParams" colspan="2"><a class="anchor" id="a290419a437522cfe1981880fbfd9f810"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a290419a437522cfe1981880fbfd9f810"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a290419a437522cfe1981880fbfd9f810">store</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Face, size_type Level, gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a290419a437522cfe1981880fbfd9f810"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel to a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a290419a437522cfe1981880fbfd9f810"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2c92d09106b13d3d20dd0909ada8a68"><td class="memTemplParams" colspan="2"><a class="anchor" id="aa2c92d09106b13d3d20dd0909ada8a68"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:aa2c92d09106b13d3d20dd0909ada8a68"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#aa2c92d09106b13d3d20dd0909ada8a68">swizzle</a> (gli::swizzles const &amp;Swizzles)</td></tr>
<tr class="memdesc:aa2c92d09106b13d3d20dd0909ada8a68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reorder the component in texture memory. <br /></td></tr>
<tr class="separator:aa2c92d09106b13d3d20dd0909ada8a68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59d3d7946e94bc294444c5f55db70c21"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59d3d7946e94bc294444c5f55db70c21"></a>
<a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a59d3d7946e94bc294444c5f55db70c21">target</a> () const </td></tr>
<tr class="memdesc:a59d3d7946e94bc294444c5f55db70c21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the target of a texture instance. <br /></td></tr>
<tr class="separator:a59d3d7946e94bc294444c5f55db70c21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9921e1ac4df78bce54d328affd59da28"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9921e1ac4df78bce54d328affd59da28"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9921e1ac4df78bce54d328affd59da28">texture</a> ()</td></tr>
<tr class="memdesc:a9921e1ac4df78bce54d328affd59da28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty texture instance. <br /></td></tr>
<tr class="separator:a9921e1ac4df78bce54d328affd59da28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ca26840db935a649290350da2b5f5ca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a4ca26840db935a649290350da2b5f5ca">texture</a> (<a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, size_type Layers, size_type Faces, size_type Levels, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a4ca26840db935a649290350da2b5f5ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object and allocate a texture storage for it. <a href="#a4ca26840db935a649290350da2b5f5ca">More...</a><br /></td></tr>
<tr class="separator:a4ca26840db935a649290350da2b5f5ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bbe0e3db3a8e9b7878acf20bc9f4c81"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9bbe0e3db3a8e9b7878acf20bc9f4c81">texture</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, size_type BaseLayer, size_type MaxLayer, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a9bbe0e3db3a8e9b7878acf20bc9f4c81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object by sharing an existing texture storage_type from another texture instance. <a href="#a9bbe0e3db3a8e9b7878acf20bc9f4c81">More...</a><br /></td></tr>
<tr class="separator:a9bbe0e3db3a8e9b7878acf20bc9f4c81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3efa6c67e681cdb4630d99cbb355aa3d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3efa6c67e681cdb4630d99cbb355aa3d">texture</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a3efa6c67e681cdb4630d99cbb355aa3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object by sharing an existing texture storage_type from another texture instance. <a href="#a3efa6c67e681cdb4630d99cbb355aa3d">More...</a><br /></td></tr>
<tr class="separator:a3efa6c67e681cdb4630d99cbb355aa3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Genetic texture class. It can support any target. </p>
<p>Definition at line <a class="el" href="a00062_source.html#l00014">14</a> of file <a class="el" href="a00062_source.html">texture.hpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a4ca26840db935a649290350da2b5f5ca"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00012.html">texture</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a>&#160;</td>
<td class="paramname"><em>Target</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a>&#160;</td>
<td class="paramname"><em>Format</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">extent_type const &amp;&#160;</td>
<td class="paramname"><em>Extent</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_type&#160;</td>
<td class="paramname"><em>Layers</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_type&#160;</td>
<td class="paramname"><em>Faces</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_type&#160;</td>
<td class="paramname"><em>Levels</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">swizzles_type const &amp;&#160;</td>
<td class="paramname"><em>Swizzles</em> = <code>swizzles_type(SWIZZLE_RED,&#160;SWIZZLE_GREEN,&#160;SWIZZLE_BLUE,&#160;SWIZZLE_ALPHA)</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a texture object and allocate a texture storage for it. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Target</td><td>Type/Shape of the texture storage_linear </td></tr>
<tr><td class="paramname">Format</td><td>Texel format </td></tr>
<tr><td class="paramname">Extent</td><td>Size of the texture: width, height and depth. </td></tr>
<tr><td class="paramname">Layers</td><td>Number of one-dimensional or two-dimensional images of identical size and format </td></tr>
<tr><td class="paramname">Faces</td><td>6 for cube map textures otherwise 1. </td></tr>
<tr><td class="paramname">Levels</td><td>Number of images in the texture mipmap chain. </td></tr>
<tr><td class="paramname">Swizzles</td><td>A mechanism to swizzle the components of a texture before they are applied according to the texture environment. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a9bbe0e3db3a8e9b7878acf20bc9f4c81"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00012.html">texture</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00012.html">texture</a> const &amp;&#160;</td>
<td class="paramname"><em>Texture</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a>&#160;</td>
<td class="paramname"><em>Target</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a>&#160;</td>
<td class="paramname"><em>Format</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_type&#160;</td>
<td class="paramname"><em>BaseLayer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_type&#160;</td>
<td class="paramname"><em>MaxLayer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_type&#160;</td>
<td class="paramname"><em>BaseFace</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_type&#160;</td>
<td class="paramname"><em>MaxFace</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_type&#160;</td>
<td class="paramname"><em>BaseLevel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_type&#160;</td>
<td class="paramname"><em>MaxLevel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">swizzles_type const &amp;&#160;</td>
<td class="paramname"><em>Swizzles</em> = <code>swizzles_type(SWIZZLE_RED,&#160;SWIZZLE_GREEN,&#160;SWIZZLE_BLUE,&#160;SWIZZLE_ALPHA)</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a texture object by sharing an existing texture storage_type from another texture instance. </p>
<p>This texture object is effectively a texture view where the layer, the face and the level allows identifying a specific subset of the texture storage_linear source. This texture object is effectively a texture view where the target and format can be reinterpreted with a different compatible texture target and texture format. </p>
</div>
</div>
<a class="anchor" id="a3efa6c67e681cdb4630d99cbb355aa3d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00012.html">texture</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00012.html">texture</a> const &amp;&#160;</td>
<td class="paramname"><em>Texture</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a>&#160;</td>
<td class="paramname"><em>Target</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a>&#160;</td>
<td class="paramname"><em>Format</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">swizzles_type const &amp;&#160;</td>
<td class="paramname"><em>Swizzles</em> = <code>swizzles_type(SWIZZLE_RED,&#160;SWIZZLE_GREEN,&#160;SWIZZLE_BLUE,&#160;SWIZZLE_ALPHA)</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a texture object by sharing an existing texture storage_type from another texture instance. </p>
<p>This texture object is effectively a texture view where the target and format can be reinterpreted with a different compatible texture target and texture format. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a5430e0073bc8a24264b7133f25f0edec"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void clear </td>
<td>(</td>
<td class="paramtype">gen_type const &amp;&#160;</td>
<td class="paramname"><em>Texel</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Clear the entire texture storage_linear with Texel which type must match the texture storage_linear format block size If the type of gen_type doesn't match the type of the texture format, no conversion is performed and the data will be reinterpreted as if is was of the texture format. </p>
</div>
</div>
<a class="anchor" id="a24789b8cce4dcbe8e0d3a47b68447aba"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_type size </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the number of blocks contained in a texture instance storage_type. </p>
<p>genType size must match the block size conresponding to the texture format. </p>
</div>
</div>
<a class="anchor" id="a665df3b51266310cd164cd5aa9c6e80e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_type size </td>
<td>(</td>
<td class="paramtype">size_type&#160;</td>
<td class="paramname"><em>Level</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the memory size of a specific level identified by Level. </p>
<p>genType size must match the block size conresponding to the texture format. </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

BIN
external/gli/doc/api/a00012.png vendored 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

326
external/gli/doc/api/a00013.html vendored 100644
View File

@ -0,0 +1,326 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: texture1d Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00074.html">gli</a></li><li class="navelem"><a class="el" href="a00013.html">texture1d</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00091.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">texture1d Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>1d texture
<a href="a00013.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for texture1d:</div>
<div class="dyncontent">
<div class="center">
<img src="a00013.png" usemap="#texture1d_map" alt=""/>
<map id="texture1d_map" name="texture1d_map">
<area href="a00012.html" title="Genetic texture class. It can support any target. " alt="texture" shape="rect" coords="0,0,64,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa9122bf87edd23bd731bd9eaf072e757"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9122bf87edd23bd731bd9eaf072e757"></a>
extent_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#aa9122bf87edd23bd731bd9eaf072e757">extent</a> (size_type Level=0) const </td></tr>
<tr class="memdesc:aa9122bf87edd23bd731bd9eaf072e757"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the width of a texture instance. <br /></td></tr>
<tr class="separator:aa9122bf87edd23bd731bd9eaf072e757"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91093dbf82799b0838fe1828cdfe05eb"><td class="memTemplParams" colspan="2"><a class="anchor" id="a91093dbf82799b0838fe1828cdfe05eb"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a91093dbf82799b0838fe1828cdfe05eb"><td class="memTemplItemLeft" align="right" valign="top">gen_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00013.html#a91093dbf82799b0838fe1828cdfe05eb">load</a> (extent_type const &amp;TexelCoord, size_type Level) const </td></tr>
<tr class="memdesc:a91093dbf82799b0838fe1828cdfe05eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a91093dbf82799b0838fe1828cdfe05eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af56d4d7adaa673dfb24e406acbf362cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af56d4d7adaa673dfb24e406acbf362cc"></a>
<a class="el" href="a00003.html">image</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#af56d4d7adaa673dfb24e406acbf362cc">operator[]</a> (size_type Level) const </td></tr>
<tr class="memdesc:af56d4d7adaa673dfb24e406acbf362cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a view of the image identified by Level in the mipmap chain of the texture. <br /></td></tr>
<tr class="separator:af56d4d7adaa673dfb24e406acbf362cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a50cbe79dfa186affb1811e96c73a95"><td class="memTemplParams" colspan="2"><a class="anchor" id="a9a50cbe79dfa186affb1811e96c73a95"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a9a50cbe79dfa186affb1811e96c73a95"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00013.html#a9a50cbe79dfa186affb1811e96c73a95">store</a> (extent_type const &amp;TexelCoord, size_type Level, gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a9a50cbe79dfa186affb1811e96c73a95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel to a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a9a50cbe79dfa186affb1811e96c73a95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a579755b34a02e8fe46aee5412deb1ef7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a579755b34a02e8fe46aee5412deb1ef7"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a579755b34a02e8fe46aee5412deb1ef7">texture1d</a> ()</td></tr>
<tr class="memdesc:a579755b34a02e8fe46aee5412deb1ef7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty texture 1D. <br /></td></tr>
<tr class="separator:a579755b34a02e8fe46aee5412deb1ef7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80dd6008716471e50feacc3fa46a3c3d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a80dd6008716471e50feacc3fa46a3c3d"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a80dd6008716471e50feacc3fa46a3c3d">texture1d</a> (<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, size_type Levels, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a80dd6008716471e50feacc3fa46a3c3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00013.html" title="1d texture ">texture1d</a> and allocate a new storage_linear. <br /></td></tr>
<tr class="separator:a80dd6008716471e50feacc3fa46a3c3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad99680d938ada40b96e8bc97ce8513f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad99680d938ada40b96e8bc97ce8513f1"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ad99680d938ada40b96e8bc97ce8513f1">texture1d</a> (<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:ad99680d938ada40b96e8bc97ce8513f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00013.html" title="1d texture ">texture1d</a> and allocate a new storage_linear with a complete mipmap chain. <br /></td></tr>
<tr class="separator:ad99680d938ada40b96e8bc97ce8513f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7c618fe79c33bcd9441ef1da7fcb262"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad7c618fe79c33bcd9441ef1da7fcb262"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ad7c618fe79c33bcd9441ef1da7fcb262">texture1d</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture)</td></tr>
<tr class="memdesc:ad7c618fe79c33bcd9441ef1da7fcb262"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00013.html" title="1d texture ">texture1d</a> view with an existing storage_linear. <br /></td></tr>
<tr class="separator:ad7c618fe79c33bcd9441ef1da7fcb262"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add6f3e86ba6e7a397d85f0bfc0d1b429"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add6f3e86ba6e7a397d85f0bfc0d1b429"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#add6f3e86ba6e7a397d85f0bfc0d1b429">texture1d</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, size_type BaseLayer, size_type MaxLayer, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:add6f3e86ba6e7a397d85f0bfc0d1b429"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00013.html" title="1d texture ">texture1d</a> view with an existing storage_linear. <br /></td></tr>
<tr class="separator:add6f3e86ba6e7a397d85f0bfc0d1b429"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81c842dc3bff0491e9ab7f3cc15b5a02"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a81c842dc3bff0491e9ab7f3cc15b5a02"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a81c842dc3bff0491e9ab7f3cc15b5a02">texture1d</a> (<a class="el" href="a00013.html">texture1d</a> const &amp;Texture, size_type BaseLevel, size_type MaxLevel)</td></tr>
<tr class="memdesc:a81c842dc3bff0491e9ab7f3cc15b5a02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00013.html" title="1d texture ">texture1d</a> view, reference a subset of an existing <a class="el" href="a00013.html" title="1d texture ">texture1d</a> instance. <br /></td></tr>
<tr class="separator:a81c842dc3bff0491e9ab7f3cc15b5a02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_a00012"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_a00012')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="a00012.html">texture</a></td></tr>
<tr class="memitem:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7c1f35cf657c7bbe9eae2b39e44f728"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ae7c1f35cf657c7bbe9eae2b39e44f728">base_face</a> () const </td></tr>
<tr class="memdesc:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base face of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the faces. <br /></td></tr>
<tr class="separator:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1aeb020d8f82035e607b209c3841dee2"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a1aeb020d8f82035e607b209c3841dee2">base_layer</a> () const </td></tr>
<tr class="memdesc:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base layer of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the layers. <br /></td></tr>
<tr class="separator:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01c07293e367b293736943e92f6a9e98"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a01c07293e367b293736943e92f6a9e98">base_level</a> () const </td></tr>
<tr class="memdesc:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base level of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the levels. <br /></td></tr>
<tr class="separator:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8bb3912a3ce86b15842e79d0b421204"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a> ()</td></tr>
<tr class="memdesc:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the entire texture storage_linear with zeros. <br /></td></tr>
<tr class="separator:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a5430e0073bc8a24264b7133f25f0edec">clear</a> (gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the entire texture storage_linear with Texel which type must match the texture storage_linear format block size If the type of gen_type doesn't match the type of the texture format, no conversion is performed and the data will be reinterpreted as if is was of the texture format. <a href="#a5430e0073bc8a24264b7133f25f0edec">More...</a><br /></td></tr>
<tr class="separator:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a54710883dcdf8a8f8f9bfc13e9dd5398"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a54710883dcdf8a8f8f9bfc13e9dd5398">clear</a> (size_type Layer, size_type Face, size_type Level, gen_type const &amp;BlockData)</td></tr>
<tr class="memdesc:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a specific image of a texture. <br /></td></tr>
<tr class="separator:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1df5aef4908916286c693427ae042eca"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a1df5aef4908916286c693427ae042eca">clear</a> (size_type Layer, size_type Face, size_type Level, extent_type const &amp;TexelOffset, extent_type const &amp;TexelExtent, gen_type const &amp;BlockData)</td></tr>
<tr class="memdesc:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a subset of a specific image of a texture. <br /></td></tr>
<tr class="separator:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade92aae99ac3524a83809acdfd8c0715"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ade92aae99ac3524a83809acdfd8c0715">copy</a> (<a class="el" href="a00012.html">texture</a> const &amp;TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, size_t LayerDst, size_t FaceDst, size_t LevelDst)</td></tr>
<tr class="memdesc:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a specific image of a texture. <br /></td></tr>
<tr class="separator:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace50b0c766f3c82847eda49459eec7e0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ace50b0c766f3c82847eda49459eec7e0">copy</a> (<a class="el" href="a00012.html">texture</a> const &amp;TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, extent_type const &amp;OffsetSrc, size_t LayerDst, size_t FaceDst, size_t LevelDst, extent_type const &amp;OffsetDst, extent_type const &amp;Extent)</td></tr>
<tr class="memdesc:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a subset of a specific image of a texture. <br /></td></tr>
<tr class="separator:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f2c67dc864c6b6e705710853b5568ef"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3f2c67dc864c6b6e705710853b5568ef">data</a> ()</td></tr>
<tr class="memdesc:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="aecfb33a652ea3f984735a031e4af697f"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#aecfb33a652ea3f984735a031e4af697f">data</a> ()</td></tr>
<tr class="memdesc:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec236abf7eac8ff4eec54eda033b9288"></a>
void const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aec236abf7eac8ff4eec54eda033b9288">data</a> () const </td></tr>
<tr class="memdesc:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a8c538fecdc895b20bbd61890bffe0fdb"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a8c538fecdc895b20bbd61890bffe0fdb">data</a> () const </td></tr>
<tr class="memdesc:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a76d02b884284dee754400f17bb7f5053"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a76d02b884284dee754400f17bb7f5053">data</a> (size_type Layer, size_type Face, size_type Level)</td></tr>
<tr class="memdesc:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad0d21d1d0e5888e0d546dc585d30249"></a>
void const *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aad0d21d1d0e5888e0d546dc585d30249">data</a> (size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a42214ff33bec0fa5dd52c2b0df7dcdbe"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a42214ff33bec0fa5dd52c2b0df7dcdbe">data</a> (size_type Layer, size_type Face, size_type Level)</td></tr>
<tr class="memdesc:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a272d7f02634851f003d81a25407ba782"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type const *const&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a272d7f02634851f003d81a25407ba782">data</a> (size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac6e61de369e994009e36f344f99c15ad"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ac6e61de369e994009e36f344f99c15ad">empty</a> () const </td></tr>
<tr class="memdesc:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether the texture instance is empty, no storage_type or description have been assigned to the instance. <br /></td></tr>
<tr class="separator:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9122bf87edd23bd731bd9eaf072e757"></a>
extent_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aa9122bf87edd23bd731bd9eaf072e757">extent</a> (size_type Level=0) const </td></tr>
<tr class="memdesc:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the size of a texture instance: width, height and depth. <br /></td></tr>
<tr class="separator:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3914cdf138e9267662ac7147fe71d644"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3914cdf138e9267662ac7147fe71d644">faces</a> () const </td></tr>
<tr class="memdesc:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#aa18daf8e8534d4cefabf3b7dfd43a6f3" title="Return the max face of the texture instance, effectively a memory offset to the beginning of the last...">max_face()</a> - <a class="el" href="a00012.html#ae7c1f35cf657c7bbe9eae2b39e44f728" title="Return the base face of the texture instance, effectively a memory offset in the actual texture stora...">base_face()</a> + 1. <br /></td></tr>
<tr class="separator:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad94928ca00873970455c1fb2d3c03fd8"></a>
<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ad94928ca00873970455c1fb2d3c03fd8">format</a> () const </td></tr>
<tr class="memdesc:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the texture instance format. <br /></td></tr>
<tr class="separator:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac4e6a627c907856620b7eb161c9b85d"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aac4e6a627c907856620b7eb161c9b85d">layers</a> () const </td></tr>
<tr class="memdesc:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#af8ae0072dcfb583fcd278650b3f55ec6" title="Return the max layer of the texture instance, effectively a memory offset to the beginning of the las...">max_layer()</a> - <a class="el" href="a00012.html#a1aeb020d8f82035e607b209c3841dee2" title="Return the base layer of the texture instance, effectively a memory offset in the actual texture stor...">base_layer()</a> + 1. <br /></td></tr>
<tr class="separator:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9b85eb415046f5a31b2d9eff8cefc24c"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9b85eb415046f5a31b2d9eff8cefc24c">levels</a> () const </td></tr>
<tr class="memdesc:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#ae174e356683cee9bf9d3e11df4d6f78a" title="Return the max level of the texture instance, effectively a memory offset to the beginning of the las...">max_level()</a> - <a class="el" href="a00012.html#a01c07293e367b293736943e92f6a9e98" title="Return the base level of the texture instance, effectively a memory offset in the actual texture stor...">base_level()</a> + 1. <br /></td></tr>
<tr class="separator:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a643d8893b84d50b7a3c7fc53b218da8a"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a643d8893b84d50b7a3c7fc53b218da8a">load</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa18daf8e8534d4cefabf3b7dfd43a6f3"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aa18daf8e8534d4cefabf3b7dfd43a6f3">max_face</a> () const </td></tr>
<tr class="memdesc:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max face of the texture instance, effectively a memory offset to the beginning of the last face in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8ae0072dcfb583fcd278650b3f55ec6"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#af8ae0072dcfb583fcd278650b3f55ec6">max_layer</a> () const </td></tr>
<tr class="memdesc:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max layer of the texture instance, effectively a memory offset to the beginning of the last layer in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae174e356683cee9bf9d3e11df4d6f78a"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ae174e356683cee9bf9d3e11df4d6f78a">max_level</a> () const </td></tr>
<tr class="memdesc:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max level of the texture instance, effectively a memory offset to the beginning of the last level in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a503ab01f6c0142145d3434f6924714e7"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a503ab01f6c0142145d3434f6924714e7">size</a> () const </td></tr>
<tr class="memdesc:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a texture instance storage_type in bytes. <br /></td></tr>
<tr class="separator:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">size_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a24789b8cce4dcbe8e0d3a47b68447aba">size</a> () const </td></tr>
<tr class="memdesc:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of blocks contained in a texture instance storage_type. <a href="#a24789b8cce4dcbe8e0d3a47b68447aba">More...</a><br /></td></tr>
<tr class="separator:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a46f11d7b73797c3e4b9a6da00f505fd8"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a46f11d7b73797c3e4b9a6da00f505fd8">size</a> (size_type Level) const </td></tr>
<tr class="memdesc:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a specific level identified by Level. <br /></td></tr>
<tr class="separator:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">size_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a665df3b51266310cd164cd5aa9c6e80e">size</a> (size_type Level) const </td></tr>
<tr class="memdesc:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a specific level identified by Level. <a href="#a665df3b51266310cd164cd5aa9c6e80e">More...</a><br /></td></tr>
<tr class="separator:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a290419a437522cfe1981880fbfd9f810"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a290419a437522cfe1981880fbfd9f810">store</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Face, size_type Level, gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel to a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="aa2c92d09106b13d3d20dd0909ada8a68"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#aa2c92d09106b13d3d20dd0909ada8a68">swizzle</a> (gli::swizzles const &amp;Swizzles)</td></tr>
<tr class="memdesc:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reorder the component in texture memory. <br /></td></tr>
<tr class="separator:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59d3d7946e94bc294444c5f55db70c21"></a>
<a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a59d3d7946e94bc294444c5f55db70c21">target</a> () const </td></tr>
<tr class="memdesc:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the target of a texture instance. <br /></td></tr>
<tr class="separator:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9921e1ac4df78bce54d328affd59da28"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9921e1ac4df78bce54d328affd59da28">texture</a> ()</td></tr>
<tr class="memdesc:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty texture instance. <br /></td></tr>
<tr class="separator:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a4ca26840db935a649290350da2b5f5ca">texture</a> (<a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, size_type Layers, size_type Faces, size_type Levels, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object and allocate a texture storage for it. <a href="#a4ca26840db935a649290350da2b5f5ca">More...</a><br /></td></tr>
<tr class="separator:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9bbe0e3db3a8e9b7878acf20bc9f4c81">texture</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, size_type BaseLayer, size_type MaxLayer, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object by sharing an existing texture storage_type from another texture instance. <a href="#a9bbe0e3db3a8e9b7878acf20bc9f4c81">More...</a><br /></td></tr>
<tr class="separator:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3efa6c67e681cdb4630d99cbb355aa3d">texture</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object by sharing an existing texture storage_type from another texture instance. <a href="#a3efa6c67e681cdb4630d99cbb355aa3d">More...</a><br /></td></tr>
<tr class="separator:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>1d texture </p>
<p>Definition at line <a class="el" href="a00063_source.html#l00012">12</a> of file <a class="el" href="a00063_source.html">texture1d.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

BIN
external/gli/doc/api/a00013.png vendored 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

326
external/gli/doc/api/a00014.html vendored 100644
View File

@ -0,0 +1,326 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: texture1d_array Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00074.html">gli</a></li><li class="navelem"><a class="el" href="a00014.html">texture1d_array</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00092.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">texture1d_array Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>1d array texture
<a href="a00014.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for texture1d_array:</div>
<div class="dyncontent">
<div class="center">
<img src="a00014.png" usemap="#texture1d_array_map" alt=""/>
<map id="texture1d_array_map" name="texture1d_array_map">
<area href="a00012.html" title="Genetic texture class. It can support any target. " alt="texture" shape="rect" coords="0,0,102,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa9122bf87edd23bd731bd9eaf072e757"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9122bf87edd23bd731bd9eaf072e757"></a>
extent_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#aa9122bf87edd23bd731bd9eaf072e757">extent</a> (size_type Level=0) const </td></tr>
<tr class="memdesc:aa9122bf87edd23bd731bd9eaf072e757"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the width of a texture instance. <br /></td></tr>
<tr class="separator:aa9122bf87edd23bd731bd9eaf072e757"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27ef7ed3e610ae892d7b3466955f06d4"><td class="memTemplParams" colspan="2"><a class="anchor" id="a27ef7ed3e610ae892d7b3466955f06d4"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a27ef7ed3e610ae892d7b3466955f06d4"><td class="memTemplItemLeft" align="right" valign="top">gen_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00014.html#a27ef7ed3e610ae892d7b3466955f06d4">load</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Level) const </td></tr>
<tr class="memdesc:a27ef7ed3e610ae892d7b3466955f06d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a27ef7ed3e610ae892d7b3466955f06d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade427841f78be2e38a148036263f3f10"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade427841f78be2e38a148036263f3f10"></a>
<a class="el" href="a00013.html">texture1d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#ade427841f78be2e38a148036263f3f10">operator[]</a> (size_type Layer) const </td></tr>
<tr class="memdesc:ade427841f78be2e38a148036263f3f10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a view of the texture identified by Layer in the texture array. <br /></td></tr>
<tr class="separator:ade427841f78be2e38a148036263f3f10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe87e955daebade5b96163121013195d"><td class="memTemplParams" colspan="2"><a class="anchor" id="afe87e955daebade5b96163121013195d"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:afe87e955daebade5b96163121013195d"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00014.html#afe87e955daebade5b96163121013195d">store</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Level, gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:afe87e955daebade5b96163121013195d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel to a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:afe87e955daebade5b96163121013195d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f0fefbe9069e366108d89f5d33ec5ca"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2f0fefbe9069e366108d89f5d33ec5ca"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#a2f0fefbe9069e366108d89f5d33ec5ca">texture1d_array</a> ()</td></tr>
<tr class="memdesc:a2f0fefbe9069e366108d89f5d33ec5ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty texture 1D array. <br /></td></tr>
<tr class="separator:a2f0fefbe9069e366108d89f5d33ec5ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67a2aba1380f3099271c3869f866836e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a67a2aba1380f3099271c3869f866836e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#a67a2aba1380f3099271c3869f866836e">texture1d_array</a> (<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, size_type Layers, size_type Levels, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a67a2aba1380f3099271c3869f866836e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00014.html" title="1d array texture ">texture1d_array</a> and allocate a new storage_linear. <br /></td></tr>
<tr class="separator:a67a2aba1380f3099271c3869f866836e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a322725501e112abe2bae19f4a2b4c3d8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a322725501e112abe2bae19f4a2b4c3d8"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#a322725501e112abe2bae19f4a2b4c3d8">texture1d_array</a> (<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, size_type Layers, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a322725501e112abe2bae19f4a2b4c3d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00014.html" title="1d array texture ">texture1d_array</a> and allocate a new storage_linear with a complete mipmap chain. <br /></td></tr>
<tr class="separator:a322725501e112abe2bae19f4a2b4c3d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57a62c2d8f5bf6f31e9c09a8fc82dea1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a57a62c2d8f5bf6f31e9c09a8fc82dea1"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#a57a62c2d8f5bf6f31e9c09a8fc82dea1">texture1d_array</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture)</td></tr>
<tr class="memdesc:a57a62c2d8f5bf6f31e9c09a8fc82dea1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00014.html" title="1d array texture ">texture1d_array</a> view with an existing storage_linear. <br /></td></tr>
<tr class="separator:a57a62c2d8f5bf6f31e9c09a8fc82dea1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74e472e98b66c02455a11c299b3a2840"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a74e472e98b66c02455a11c299b3a2840"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#a74e472e98b66c02455a11c299b3a2840">texture1d_array</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, size_type BaseLayer, size_type MaxLayer, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a74e472e98b66c02455a11c299b3a2840"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00014.html" title="1d array texture ">texture1d_array</a> view with an existing storage_linear. <br /></td></tr>
<tr class="separator:a74e472e98b66c02455a11c299b3a2840"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54ec1dba555e7d043c09024caec7c23d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a54ec1dba555e7d043c09024caec7c23d"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#a54ec1dba555e7d043c09024caec7c23d">texture1d_array</a> (<a class="el" href="a00014.html">texture1d_array</a> const &amp;Texture, size_type BaseLayer, size_type MaxLayer, size_type BaseLevel, size_type MaxLevel)</td></tr>
<tr class="memdesc:a54ec1dba555e7d043c09024caec7c23d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture view, reference a subset of an exiting storage_linear. <br /></td></tr>
<tr class="separator:a54ec1dba555e7d043c09024caec7c23d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_a00012"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_a00012')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="a00012.html">texture</a></td></tr>
<tr class="memitem:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7c1f35cf657c7bbe9eae2b39e44f728"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ae7c1f35cf657c7bbe9eae2b39e44f728">base_face</a> () const </td></tr>
<tr class="memdesc:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base face of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the faces. <br /></td></tr>
<tr class="separator:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1aeb020d8f82035e607b209c3841dee2"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a1aeb020d8f82035e607b209c3841dee2">base_layer</a> () const </td></tr>
<tr class="memdesc:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base layer of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the layers. <br /></td></tr>
<tr class="separator:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01c07293e367b293736943e92f6a9e98"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a01c07293e367b293736943e92f6a9e98">base_level</a> () const </td></tr>
<tr class="memdesc:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base level of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the levels. <br /></td></tr>
<tr class="separator:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8bb3912a3ce86b15842e79d0b421204"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a> ()</td></tr>
<tr class="memdesc:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the entire texture storage_linear with zeros. <br /></td></tr>
<tr class="separator:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a5430e0073bc8a24264b7133f25f0edec">clear</a> (gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the entire texture storage_linear with Texel which type must match the texture storage_linear format block size If the type of gen_type doesn't match the type of the texture format, no conversion is performed and the data will be reinterpreted as if is was of the texture format. <a href="#a5430e0073bc8a24264b7133f25f0edec">More...</a><br /></td></tr>
<tr class="separator:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a54710883dcdf8a8f8f9bfc13e9dd5398"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a54710883dcdf8a8f8f9bfc13e9dd5398">clear</a> (size_type Layer, size_type Face, size_type Level, gen_type const &amp;BlockData)</td></tr>
<tr class="memdesc:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a specific image of a texture. <br /></td></tr>
<tr class="separator:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1df5aef4908916286c693427ae042eca"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a1df5aef4908916286c693427ae042eca">clear</a> (size_type Layer, size_type Face, size_type Level, extent_type const &amp;TexelOffset, extent_type const &amp;TexelExtent, gen_type const &amp;BlockData)</td></tr>
<tr class="memdesc:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a subset of a specific image of a texture. <br /></td></tr>
<tr class="separator:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade92aae99ac3524a83809acdfd8c0715"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ade92aae99ac3524a83809acdfd8c0715">copy</a> (<a class="el" href="a00012.html">texture</a> const &amp;TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, size_t LayerDst, size_t FaceDst, size_t LevelDst)</td></tr>
<tr class="memdesc:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a specific image of a texture. <br /></td></tr>
<tr class="separator:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace50b0c766f3c82847eda49459eec7e0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ace50b0c766f3c82847eda49459eec7e0">copy</a> (<a class="el" href="a00012.html">texture</a> const &amp;TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, extent_type const &amp;OffsetSrc, size_t LayerDst, size_t FaceDst, size_t LevelDst, extent_type const &amp;OffsetDst, extent_type const &amp;Extent)</td></tr>
<tr class="memdesc:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a subset of a specific image of a texture. <br /></td></tr>
<tr class="separator:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f2c67dc864c6b6e705710853b5568ef"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3f2c67dc864c6b6e705710853b5568ef">data</a> ()</td></tr>
<tr class="memdesc:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="aecfb33a652ea3f984735a031e4af697f"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#aecfb33a652ea3f984735a031e4af697f">data</a> ()</td></tr>
<tr class="memdesc:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec236abf7eac8ff4eec54eda033b9288"></a>
void const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aec236abf7eac8ff4eec54eda033b9288">data</a> () const </td></tr>
<tr class="memdesc:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a8c538fecdc895b20bbd61890bffe0fdb"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a8c538fecdc895b20bbd61890bffe0fdb">data</a> () const </td></tr>
<tr class="memdesc:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a76d02b884284dee754400f17bb7f5053"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a76d02b884284dee754400f17bb7f5053">data</a> (size_type Layer, size_type Face, size_type Level)</td></tr>
<tr class="memdesc:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad0d21d1d0e5888e0d546dc585d30249"></a>
void const *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aad0d21d1d0e5888e0d546dc585d30249">data</a> (size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a42214ff33bec0fa5dd52c2b0df7dcdbe"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a42214ff33bec0fa5dd52c2b0df7dcdbe">data</a> (size_type Layer, size_type Face, size_type Level)</td></tr>
<tr class="memdesc:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a272d7f02634851f003d81a25407ba782"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type const *const&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a272d7f02634851f003d81a25407ba782">data</a> (size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac6e61de369e994009e36f344f99c15ad"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ac6e61de369e994009e36f344f99c15ad">empty</a> () const </td></tr>
<tr class="memdesc:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether the texture instance is empty, no storage_type or description have been assigned to the instance. <br /></td></tr>
<tr class="separator:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9122bf87edd23bd731bd9eaf072e757"></a>
extent_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aa9122bf87edd23bd731bd9eaf072e757">extent</a> (size_type Level=0) const </td></tr>
<tr class="memdesc:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the size of a texture instance: width, height and depth. <br /></td></tr>
<tr class="separator:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3914cdf138e9267662ac7147fe71d644"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3914cdf138e9267662ac7147fe71d644">faces</a> () const </td></tr>
<tr class="memdesc:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#aa18daf8e8534d4cefabf3b7dfd43a6f3" title="Return the max face of the texture instance, effectively a memory offset to the beginning of the last...">max_face()</a> - <a class="el" href="a00012.html#ae7c1f35cf657c7bbe9eae2b39e44f728" title="Return the base face of the texture instance, effectively a memory offset in the actual texture stora...">base_face()</a> + 1. <br /></td></tr>
<tr class="separator:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad94928ca00873970455c1fb2d3c03fd8"></a>
<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ad94928ca00873970455c1fb2d3c03fd8">format</a> () const </td></tr>
<tr class="memdesc:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the texture instance format. <br /></td></tr>
<tr class="separator:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac4e6a627c907856620b7eb161c9b85d"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aac4e6a627c907856620b7eb161c9b85d">layers</a> () const </td></tr>
<tr class="memdesc:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#af8ae0072dcfb583fcd278650b3f55ec6" title="Return the max layer of the texture instance, effectively a memory offset to the beginning of the las...">max_layer()</a> - <a class="el" href="a00012.html#a1aeb020d8f82035e607b209c3841dee2" title="Return the base layer of the texture instance, effectively a memory offset in the actual texture stor...">base_layer()</a> + 1. <br /></td></tr>
<tr class="separator:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9b85eb415046f5a31b2d9eff8cefc24c"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9b85eb415046f5a31b2d9eff8cefc24c">levels</a> () const </td></tr>
<tr class="memdesc:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#ae174e356683cee9bf9d3e11df4d6f78a" title="Return the max level of the texture instance, effectively a memory offset to the beginning of the las...">max_level()</a> - <a class="el" href="a00012.html#a01c07293e367b293736943e92f6a9e98" title="Return the base level of the texture instance, effectively a memory offset in the actual texture stor...">base_level()</a> + 1. <br /></td></tr>
<tr class="separator:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a643d8893b84d50b7a3c7fc53b218da8a"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a643d8893b84d50b7a3c7fc53b218da8a">load</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa18daf8e8534d4cefabf3b7dfd43a6f3"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aa18daf8e8534d4cefabf3b7dfd43a6f3">max_face</a> () const </td></tr>
<tr class="memdesc:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max face of the texture instance, effectively a memory offset to the beginning of the last face in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8ae0072dcfb583fcd278650b3f55ec6"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#af8ae0072dcfb583fcd278650b3f55ec6">max_layer</a> () const </td></tr>
<tr class="memdesc:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max layer of the texture instance, effectively a memory offset to the beginning of the last layer in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae174e356683cee9bf9d3e11df4d6f78a"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ae174e356683cee9bf9d3e11df4d6f78a">max_level</a> () const </td></tr>
<tr class="memdesc:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max level of the texture instance, effectively a memory offset to the beginning of the last level in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a503ab01f6c0142145d3434f6924714e7"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a503ab01f6c0142145d3434f6924714e7">size</a> () const </td></tr>
<tr class="memdesc:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a texture instance storage_type in bytes. <br /></td></tr>
<tr class="separator:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">size_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a24789b8cce4dcbe8e0d3a47b68447aba">size</a> () const </td></tr>
<tr class="memdesc:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of blocks contained in a texture instance storage_type. <a href="#a24789b8cce4dcbe8e0d3a47b68447aba">More...</a><br /></td></tr>
<tr class="separator:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a46f11d7b73797c3e4b9a6da00f505fd8"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a46f11d7b73797c3e4b9a6da00f505fd8">size</a> (size_type Level) const </td></tr>
<tr class="memdesc:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a specific level identified by Level. <br /></td></tr>
<tr class="separator:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">size_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a665df3b51266310cd164cd5aa9c6e80e">size</a> (size_type Level) const </td></tr>
<tr class="memdesc:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a specific level identified by Level. <a href="#a665df3b51266310cd164cd5aa9c6e80e">More...</a><br /></td></tr>
<tr class="separator:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a290419a437522cfe1981880fbfd9f810"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a290419a437522cfe1981880fbfd9f810">store</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Face, size_type Level, gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel to a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="aa2c92d09106b13d3d20dd0909ada8a68"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#aa2c92d09106b13d3d20dd0909ada8a68">swizzle</a> (gli::swizzles const &amp;Swizzles)</td></tr>
<tr class="memdesc:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reorder the component in texture memory. <br /></td></tr>
<tr class="separator:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59d3d7946e94bc294444c5f55db70c21"></a>
<a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a59d3d7946e94bc294444c5f55db70c21">target</a> () const </td></tr>
<tr class="memdesc:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the target of a texture instance. <br /></td></tr>
<tr class="separator:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9921e1ac4df78bce54d328affd59da28"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9921e1ac4df78bce54d328affd59da28">texture</a> ()</td></tr>
<tr class="memdesc:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty texture instance. <br /></td></tr>
<tr class="separator:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a4ca26840db935a649290350da2b5f5ca">texture</a> (<a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, size_type Layers, size_type Faces, size_type Levels, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object and allocate a texture storage for it. <a href="#a4ca26840db935a649290350da2b5f5ca">More...</a><br /></td></tr>
<tr class="separator:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9bbe0e3db3a8e9b7878acf20bc9f4c81">texture</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, size_type BaseLayer, size_type MaxLayer, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object by sharing an existing texture storage_type from another texture instance. <a href="#a9bbe0e3db3a8e9b7878acf20bc9f4c81">More...</a><br /></td></tr>
<tr class="separator:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3efa6c67e681cdb4630d99cbb355aa3d">texture</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object by sharing an existing texture storage_type from another texture instance. <a href="#a3efa6c67e681cdb4630d99cbb355aa3d">More...</a><br /></td></tr>
<tr class="separator:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>1d array texture </p>
<p>Definition at line <a class="el" href="a00064_source.html#l00011">11</a> of file <a class="el" href="a00064_source.html">texture1d_array.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

BIN
external/gli/doc/api/a00014.png vendored 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 B

326
external/gli/doc/api/a00015.html vendored 100644
View File

@ -0,0 +1,326 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: texture2d Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00074.html">gli</a></li><li class="navelem"><a class="el" href="a00015.html">texture2d</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00093.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">texture2d Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>2d texture
<a href="a00015.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for texture2d:</div>
<div class="dyncontent">
<div class="center">
<img src="a00015.png" usemap="#texture2d_map" alt=""/>
<map id="texture2d_map" name="texture2d_map">
<area href="a00012.html" title="Genetic texture class. It can support any target. " alt="texture" shape="rect" coords="0,0,64,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa9122bf87edd23bd731bd9eaf072e757"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9122bf87edd23bd731bd9eaf072e757"></a>
extent_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html#aa9122bf87edd23bd731bd9eaf072e757">extent</a> (size_type Level=0) const </td></tr>
<tr class="memdesc:aa9122bf87edd23bd731bd9eaf072e757"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the dimensions of a texture instance: width and height. <br /></td></tr>
<tr class="separator:aa9122bf87edd23bd731bd9eaf072e757"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91093dbf82799b0838fe1828cdfe05eb"><td class="memTemplParams" colspan="2"><a class="anchor" id="a91093dbf82799b0838fe1828cdfe05eb"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a91093dbf82799b0838fe1828cdfe05eb"><td class="memTemplItemLeft" align="right" valign="top">gen_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00015.html#a91093dbf82799b0838fe1828cdfe05eb">load</a> (extent_type const &amp;TexelCoord, size_type Level) const </td></tr>
<tr class="memdesc:a91093dbf82799b0838fe1828cdfe05eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a91093dbf82799b0838fe1828cdfe05eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af56d4d7adaa673dfb24e406acbf362cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af56d4d7adaa673dfb24e406acbf362cc"></a>
<a class="el" href="a00003.html">image</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html#af56d4d7adaa673dfb24e406acbf362cc">operator[]</a> (size_type Level) const </td></tr>
<tr class="memdesc:af56d4d7adaa673dfb24e406acbf362cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a view of the image identified by Level in the mipmap chain of the texture. <br /></td></tr>
<tr class="separator:af56d4d7adaa673dfb24e406acbf362cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a50cbe79dfa186affb1811e96c73a95"><td class="memTemplParams" colspan="2"><a class="anchor" id="a9a50cbe79dfa186affb1811e96c73a95"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a9a50cbe79dfa186affb1811e96c73a95"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00015.html#a9a50cbe79dfa186affb1811e96c73a95">store</a> (extent_type const &amp;TexelCoord, size_type Level, gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a9a50cbe79dfa186affb1811e96c73a95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel to a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a9a50cbe79dfa186affb1811e96c73a95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a721a1e4ccb258d43fadf7224889d6198"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a721a1e4ccb258d43fadf7224889d6198"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html#a721a1e4ccb258d43fadf7224889d6198">texture2d</a> ()</td></tr>
<tr class="memdesc:a721a1e4ccb258d43fadf7224889d6198"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty texture 2D. <br /></td></tr>
<tr class="separator:a721a1e4ccb258d43fadf7224889d6198"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a9985c0e7c934e98e1ec2b7c80d0977"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a9985c0e7c934e98e1ec2b7c80d0977"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html#a4a9985c0e7c934e98e1ec2b7c80d0977">texture2d</a> (<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, size_type Levels, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a4a9985c0e7c934e98e1ec2b7c80d0977"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00015.html" title="2d texture ">texture2d</a> and allocate a new storage_linear. <br /></td></tr>
<tr class="separator:a4a9985c0e7c934e98e1ec2b7c80d0977"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa815f652b4cf0a41ecd91efa6b074a3d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa815f652b4cf0a41ecd91efa6b074a3d"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html#aa815f652b4cf0a41ecd91efa6b074a3d">texture2d</a> (<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:aa815f652b4cf0a41ecd91efa6b074a3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00015.html" title="2d texture ">texture2d</a> and allocate a new storage_linear with a complete mipmap chain. <br /></td></tr>
<tr class="separator:aa815f652b4cf0a41ecd91efa6b074a3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a747dba86c3a3a20270133755d012cd48"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a747dba86c3a3a20270133755d012cd48"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html#a747dba86c3a3a20270133755d012cd48">texture2d</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture)</td></tr>
<tr class="memdesc:a747dba86c3a3a20270133755d012cd48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00015.html" title="2d texture ">texture2d</a> view with an existing storage_linear. <br /></td></tr>
<tr class="separator:a747dba86c3a3a20270133755d012cd48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaef1c237c9932cfbf6a94b270a2ebbda"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaef1c237c9932cfbf6a94b270a2ebbda"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html#aaef1c237c9932cfbf6a94b270a2ebbda">texture2d</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, size_type BaseLayer, size_type MaxLayer, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:aaef1c237c9932cfbf6a94b270a2ebbda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00015.html" title="2d texture ">texture2d</a> view with an existing storage_linear. <br /></td></tr>
<tr class="separator:aaef1c237c9932cfbf6a94b270a2ebbda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bfd372194039290b4628fd084b9d2f6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9bfd372194039290b4628fd084b9d2f6"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html#a9bfd372194039290b4628fd084b9d2f6">texture2d</a> (<a class="el" href="a00015.html">texture2d</a> const &amp;Texture, size_type BaseLevel, size_type MaxLevel)</td></tr>
<tr class="memdesc:a9bfd372194039290b4628fd084b9d2f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00015.html" title="2d texture ">texture2d</a> view, reference a subset of an existing <a class="el" href="a00015.html" title="2d texture ">texture2d</a> instance. <br /></td></tr>
<tr class="separator:a9bfd372194039290b4628fd084b9d2f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_a00012"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_a00012')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="a00012.html">texture</a></td></tr>
<tr class="memitem:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7c1f35cf657c7bbe9eae2b39e44f728"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ae7c1f35cf657c7bbe9eae2b39e44f728">base_face</a> () const </td></tr>
<tr class="memdesc:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base face of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the faces. <br /></td></tr>
<tr class="separator:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1aeb020d8f82035e607b209c3841dee2"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a1aeb020d8f82035e607b209c3841dee2">base_layer</a> () const </td></tr>
<tr class="memdesc:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base layer of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the layers. <br /></td></tr>
<tr class="separator:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01c07293e367b293736943e92f6a9e98"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a01c07293e367b293736943e92f6a9e98">base_level</a> () const </td></tr>
<tr class="memdesc:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base level of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the levels. <br /></td></tr>
<tr class="separator:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8bb3912a3ce86b15842e79d0b421204"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a> ()</td></tr>
<tr class="memdesc:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the entire texture storage_linear with zeros. <br /></td></tr>
<tr class="separator:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a5430e0073bc8a24264b7133f25f0edec">clear</a> (gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the entire texture storage_linear with Texel which type must match the texture storage_linear format block size If the type of gen_type doesn't match the type of the texture format, no conversion is performed and the data will be reinterpreted as if is was of the texture format. <a href="#a5430e0073bc8a24264b7133f25f0edec">More...</a><br /></td></tr>
<tr class="separator:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a54710883dcdf8a8f8f9bfc13e9dd5398"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a54710883dcdf8a8f8f9bfc13e9dd5398">clear</a> (size_type Layer, size_type Face, size_type Level, gen_type const &amp;BlockData)</td></tr>
<tr class="memdesc:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a specific image of a texture. <br /></td></tr>
<tr class="separator:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1df5aef4908916286c693427ae042eca"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a1df5aef4908916286c693427ae042eca">clear</a> (size_type Layer, size_type Face, size_type Level, extent_type const &amp;TexelOffset, extent_type const &amp;TexelExtent, gen_type const &amp;BlockData)</td></tr>
<tr class="memdesc:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a subset of a specific image of a texture. <br /></td></tr>
<tr class="separator:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade92aae99ac3524a83809acdfd8c0715"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ade92aae99ac3524a83809acdfd8c0715">copy</a> (<a class="el" href="a00012.html">texture</a> const &amp;TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, size_t LayerDst, size_t FaceDst, size_t LevelDst)</td></tr>
<tr class="memdesc:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a specific image of a texture. <br /></td></tr>
<tr class="separator:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace50b0c766f3c82847eda49459eec7e0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ace50b0c766f3c82847eda49459eec7e0">copy</a> (<a class="el" href="a00012.html">texture</a> const &amp;TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, extent_type const &amp;OffsetSrc, size_t LayerDst, size_t FaceDst, size_t LevelDst, extent_type const &amp;OffsetDst, extent_type const &amp;Extent)</td></tr>
<tr class="memdesc:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a subset of a specific image of a texture. <br /></td></tr>
<tr class="separator:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f2c67dc864c6b6e705710853b5568ef"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3f2c67dc864c6b6e705710853b5568ef">data</a> ()</td></tr>
<tr class="memdesc:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="aecfb33a652ea3f984735a031e4af697f"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#aecfb33a652ea3f984735a031e4af697f">data</a> ()</td></tr>
<tr class="memdesc:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec236abf7eac8ff4eec54eda033b9288"></a>
void const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aec236abf7eac8ff4eec54eda033b9288">data</a> () const </td></tr>
<tr class="memdesc:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a8c538fecdc895b20bbd61890bffe0fdb"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a8c538fecdc895b20bbd61890bffe0fdb">data</a> () const </td></tr>
<tr class="memdesc:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a76d02b884284dee754400f17bb7f5053"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a76d02b884284dee754400f17bb7f5053">data</a> (size_type Layer, size_type Face, size_type Level)</td></tr>
<tr class="memdesc:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad0d21d1d0e5888e0d546dc585d30249"></a>
void const *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aad0d21d1d0e5888e0d546dc585d30249">data</a> (size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a42214ff33bec0fa5dd52c2b0df7dcdbe"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a42214ff33bec0fa5dd52c2b0df7dcdbe">data</a> (size_type Layer, size_type Face, size_type Level)</td></tr>
<tr class="memdesc:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a272d7f02634851f003d81a25407ba782"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type const *const&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a272d7f02634851f003d81a25407ba782">data</a> (size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac6e61de369e994009e36f344f99c15ad"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ac6e61de369e994009e36f344f99c15ad">empty</a> () const </td></tr>
<tr class="memdesc:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether the texture instance is empty, no storage_type or description have been assigned to the instance. <br /></td></tr>
<tr class="separator:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9122bf87edd23bd731bd9eaf072e757"></a>
extent_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aa9122bf87edd23bd731bd9eaf072e757">extent</a> (size_type Level=0) const </td></tr>
<tr class="memdesc:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the size of a texture instance: width, height and depth. <br /></td></tr>
<tr class="separator:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3914cdf138e9267662ac7147fe71d644"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3914cdf138e9267662ac7147fe71d644">faces</a> () const </td></tr>
<tr class="memdesc:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#aa18daf8e8534d4cefabf3b7dfd43a6f3" title="Return the max face of the texture instance, effectively a memory offset to the beginning of the last...">max_face()</a> - <a class="el" href="a00012.html#ae7c1f35cf657c7bbe9eae2b39e44f728" title="Return the base face of the texture instance, effectively a memory offset in the actual texture stora...">base_face()</a> + 1. <br /></td></tr>
<tr class="separator:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad94928ca00873970455c1fb2d3c03fd8"></a>
<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ad94928ca00873970455c1fb2d3c03fd8">format</a> () const </td></tr>
<tr class="memdesc:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the texture instance format. <br /></td></tr>
<tr class="separator:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac4e6a627c907856620b7eb161c9b85d"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aac4e6a627c907856620b7eb161c9b85d">layers</a> () const </td></tr>
<tr class="memdesc:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#af8ae0072dcfb583fcd278650b3f55ec6" title="Return the max layer of the texture instance, effectively a memory offset to the beginning of the las...">max_layer()</a> - <a class="el" href="a00012.html#a1aeb020d8f82035e607b209c3841dee2" title="Return the base layer of the texture instance, effectively a memory offset in the actual texture stor...">base_layer()</a> + 1. <br /></td></tr>
<tr class="separator:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9b85eb415046f5a31b2d9eff8cefc24c"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9b85eb415046f5a31b2d9eff8cefc24c">levels</a> () const </td></tr>
<tr class="memdesc:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#ae174e356683cee9bf9d3e11df4d6f78a" title="Return the max level of the texture instance, effectively a memory offset to the beginning of the las...">max_level()</a> - <a class="el" href="a00012.html#a01c07293e367b293736943e92f6a9e98" title="Return the base level of the texture instance, effectively a memory offset in the actual texture stor...">base_level()</a> + 1. <br /></td></tr>
<tr class="separator:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a643d8893b84d50b7a3c7fc53b218da8a"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a643d8893b84d50b7a3c7fc53b218da8a">load</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa18daf8e8534d4cefabf3b7dfd43a6f3"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aa18daf8e8534d4cefabf3b7dfd43a6f3">max_face</a> () const </td></tr>
<tr class="memdesc:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max face of the texture instance, effectively a memory offset to the beginning of the last face in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8ae0072dcfb583fcd278650b3f55ec6"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#af8ae0072dcfb583fcd278650b3f55ec6">max_layer</a> () const </td></tr>
<tr class="memdesc:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max layer of the texture instance, effectively a memory offset to the beginning of the last layer in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae174e356683cee9bf9d3e11df4d6f78a"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ae174e356683cee9bf9d3e11df4d6f78a">max_level</a> () const </td></tr>
<tr class="memdesc:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max level of the texture instance, effectively a memory offset to the beginning of the last level in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a503ab01f6c0142145d3434f6924714e7"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a503ab01f6c0142145d3434f6924714e7">size</a> () const </td></tr>
<tr class="memdesc:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a texture instance storage_type in bytes. <br /></td></tr>
<tr class="separator:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">size_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a24789b8cce4dcbe8e0d3a47b68447aba">size</a> () const </td></tr>
<tr class="memdesc:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of blocks contained in a texture instance storage_type. <a href="#a24789b8cce4dcbe8e0d3a47b68447aba">More...</a><br /></td></tr>
<tr class="separator:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a46f11d7b73797c3e4b9a6da00f505fd8"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a46f11d7b73797c3e4b9a6da00f505fd8">size</a> (size_type Level) const </td></tr>
<tr class="memdesc:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a specific level identified by Level. <br /></td></tr>
<tr class="separator:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">size_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a665df3b51266310cd164cd5aa9c6e80e">size</a> (size_type Level) const </td></tr>
<tr class="memdesc:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a specific level identified by Level. <a href="#a665df3b51266310cd164cd5aa9c6e80e">More...</a><br /></td></tr>
<tr class="separator:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a290419a437522cfe1981880fbfd9f810"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a290419a437522cfe1981880fbfd9f810">store</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Face, size_type Level, gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel to a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="aa2c92d09106b13d3d20dd0909ada8a68"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#aa2c92d09106b13d3d20dd0909ada8a68">swizzle</a> (gli::swizzles const &amp;Swizzles)</td></tr>
<tr class="memdesc:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reorder the component in texture memory. <br /></td></tr>
<tr class="separator:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59d3d7946e94bc294444c5f55db70c21"></a>
<a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a59d3d7946e94bc294444c5f55db70c21">target</a> () const </td></tr>
<tr class="memdesc:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the target of a texture instance. <br /></td></tr>
<tr class="separator:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9921e1ac4df78bce54d328affd59da28"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9921e1ac4df78bce54d328affd59da28">texture</a> ()</td></tr>
<tr class="memdesc:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty texture instance. <br /></td></tr>
<tr class="separator:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a4ca26840db935a649290350da2b5f5ca">texture</a> (<a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, size_type Layers, size_type Faces, size_type Levels, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object and allocate a texture storage for it. <a href="#a4ca26840db935a649290350da2b5f5ca">More...</a><br /></td></tr>
<tr class="separator:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9bbe0e3db3a8e9b7878acf20bc9f4c81">texture</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, size_type BaseLayer, size_type MaxLayer, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object by sharing an existing texture storage_type from another texture instance. <a href="#a9bbe0e3db3a8e9b7878acf20bc9f4c81">More...</a><br /></td></tr>
<tr class="separator:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3efa6c67e681cdb4630d99cbb355aa3d">texture</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object by sharing an existing texture storage_type from another texture instance. <a href="#a3efa6c67e681cdb4630d99cbb355aa3d">More...</a><br /></td></tr>
<tr class="separator:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>2d texture </p>
<p>Definition at line <a class="el" href="a00065_source.html#l00012">12</a> of file <a class="el" href="a00065_source.html">texture2d.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

BIN
external/gli/doc/api/a00015.png vendored 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

326
external/gli/doc/api/a00016.html vendored 100644
View File

@ -0,0 +1,326 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: texture2d_array Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00074.html">gli</a></li><li class="navelem"><a class="el" href="a00016.html">texture2d_array</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00094.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">texture2d_array Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>2d array texture
<a href="a00016.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for texture2d_array:</div>
<div class="dyncontent">
<div class="center">
<img src="a00016.png" usemap="#texture2d_array_map" alt=""/>
<map id="texture2d_array_map" name="texture2d_array_map">
<area href="a00012.html" title="Genetic texture class. It can support any target. " alt="texture" shape="rect" coords="0,0,102,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa9122bf87edd23bd731bd9eaf072e757"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9122bf87edd23bd731bd9eaf072e757"></a>
extent_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#aa9122bf87edd23bd731bd9eaf072e757">extent</a> (size_type Level=0) const </td></tr>
<tr class="memdesc:aa9122bf87edd23bd731bd9eaf072e757"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the dimensions of a texture instance: width and height. <br /></td></tr>
<tr class="separator:aa9122bf87edd23bd731bd9eaf072e757"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27ef7ed3e610ae892d7b3466955f06d4"><td class="memTemplParams" colspan="2"><a class="anchor" id="a27ef7ed3e610ae892d7b3466955f06d4"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a27ef7ed3e610ae892d7b3466955f06d4"><td class="memTemplItemLeft" align="right" valign="top">gen_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00016.html#a27ef7ed3e610ae892d7b3466955f06d4">load</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Level) const </td></tr>
<tr class="memdesc:a27ef7ed3e610ae892d7b3466955f06d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a27ef7ed3e610ae892d7b3466955f06d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b937706c7588c2afa9534fe2f723912"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7b937706c7588c2afa9534fe2f723912"></a>
<a class="el" href="a00015.html">texture2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#a7b937706c7588c2afa9534fe2f723912">operator[]</a> (size_type Layer) const </td></tr>
<tr class="memdesc:a7b937706c7588c2afa9534fe2f723912"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a view of the texture identified by Layer in the texture array. <br /></td></tr>
<tr class="separator:a7b937706c7588c2afa9534fe2f723912"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe87e955daebade5b96163121013195d"><td class="memTemplParams" colspan="2"><a class="anchor" id="afe87e955daebade5b96163121013195d"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:afe87e955daebade5b96163121013195d"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00016.html#afe87e955daebade5b96163121013195d">store</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Level, gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:afe87e955daebade5b96163121013195d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel to a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:afe87e955daebade5b96163121013195d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4855111e2bedbae286805799affaeb73"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4855111e2bedbae286805799affaeb73"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#a4855111e2bedbae286805799affaeb73">texture2d_array</a> ()</td></tr>
<tr class="memdesc:a4855111e2bedbae286805799affaeb73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty texture 2D array. <br /></td></tr>
<tr class="separator:a4855111e2bedbae286805799affaeb73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a868a60615a76054c283ac95db48b9bc7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a868a60615a76054c283ac95db48b9bc7"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#a868a60615a76054c283ac95db48b9bc7">texture2d_array</a> (<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, size_type Layers, size_type Levels, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a868a60615a76054c283ac95db48b9bc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00016.html" title="2d array texture ">texture2d_array</a> and allocate a new storage_linear. <br /></td></tr>
<tr class="separator:a868a60615a76054c283ac95db48b9bc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8859d094d2e593dd22d375a193a42281"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8859d094d2e593dd22d375a193a42281"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#a8859d094d2e593dd22d375a193a42281">texture2d_array</a> (<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, size_type Layers, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a8859d094d2e593dd22d375a193a42281"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00016.html" title="2d array texture ">texture2d_array</a> and allocate a new storage_linear with a complete mipmap chain. <br /></td></tr>
<tr class="separator:a8859d094d2e593dd22d375a193a42281"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1be2599d32b422cb276189694ee13081"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1be2599d32b422cb276189694ee13081"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#a1be2599d32b422cb276189694ee13081">texture2d_array</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture)</td></tr>
<tr class="memdesc:a1be2599d32b422cb276189694ee13081"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00016.html" title="2d array texture ">texture2d_array</a> view with an existing storage_linear. <br /></td></tr>
<tr class="separator:a1be2599d32b422cb276189694ee13081"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68382c688b06047e4eba796475510f03"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a68382c688b06047e4eba796475510f03"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#a68382c688b06047e4eba796475510f03">texture2d_array</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, size_type BaseLayer, size_type MaxLayer, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a68382c688b06047e4eba796475510f03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00016.html" title="2d array texture ">texture2d_array</a> view with an existing storage_linear. <br /></td></tr>
<tr class="separator:a68382c688b06047e4eba796475510f03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e32a31975d1a89bfa72836230518294"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8e32a31975d1a89bfa72836230518294"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#a8e32a31975d1a89bfa72836230518294">texture2d_array</a> (<a class="el" href="a00016.html">texture2d_array</a> const &amp;Texture, size_type BaseLayer, size_type MaxLayer, size_type BaseLevel, size_type MaxLevel)</td></tr>
<tr class="memdesc:a8e32a31975d1a89bfa72836230518294"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture view, reference a subset of an exiting <a class="el" href="a00016.html" title="2d array texture ">texture2d_array</a> instance. <br /></td></tr>
<tr class="separator:a8e32a31975d1a89bfa72836230518294"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_a00012"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_a00012')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="a00012.html">texture</a></td></tr>
<tr class="memitem:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7c1f35cf657c7bbe9eae2b39e44f728"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ae7c1f35cf657c7bbe9eae2b39e44f728">base_face</a> () const </td></tr>
<tr class="memdesc:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base face of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the faces. <br /></td></tr>
<tr class="separator:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1aeb020d8f82035e607b209c3841dee2"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a1aeb020d8f82035e607b209c3841dee2">base_layer</a> () const </td></tr>
<tr class="memdesc:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base layer of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the layers. <br /></td></tr>
<tr class="separator:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01c07293e367b293736943e92f6a9e98"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a01c07293e367b293736943e92f6a9e98">base_level</a> () const </td></tr>
<tr class="memdesc:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base level of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the levels. <br /></td></tr>
<tr class="separator:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8bb3912a3ce86b15842e79d0b421204"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a> ()</td></tr>
<tr class="memdesc:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the entire texture storage_linear with zeros. <br /></td></tr>
<tr class="separator:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a5430e0073bc8a24264b7133f25f0edec">clear</a> (gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the entire texture storage_linear with Texel which type must match the texture storage_linear format block size If the type of gen_type doesn't match the type of the texture format, no conversion is performed and the data will be reinterpreted as if is was of the texture format. <a href="#a5430e0073bc8a24264b7133f25f0edec">More...</a><br /></td></tr>
<tr class="separator:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a54710883dcdf8a8f8f9bfc13e9dd5398"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a54710883dcdf8a8f8f9bfc13e9dd5398">clear</a> (size_type Layer, size_type Face, size_type Level, gen_type const &amp;BlockData)</td></tr>
<tr class="memdesc:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a specific image of a texture. <br /></td></tr>
<tr class="separator:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1df5aef4908916286c693427ae042eca"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a1df5aef4908916286c693427ae042eca">clear</a> (size_type Layer, size_type Face, size_type Level, extent_type const &amp;TexelOffset, extent_type const &amp;TexelExtent, gen_type const &amp;BlockData)</td></tr>
<tr class="memdesc:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a subset of a specific image of a texture. <br /></td></tr>
<tr class="separator:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade92aae99ac3524a83809acdfd8c0715"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ade92aae99ac3524a83809acdfd8c0715">copy</a> (<a class="el" href="a00012.html">texture</a> const &amp;TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, size_t LayerDst, size_t FaceDst, size_t LevelDst)</td></tr>
<tr class="memdesc:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a specific image of a texture. <br /></td></tr>
<tr class="separator:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace50b0c766f3c82847eda49459eec7e0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ace50b0c766f3c82847eda49459eec7e0">copy</a> (<a class="el" href="a00012.html">texture</a> const &amp;TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, extent_type const &amp;OffsetSrc, size_t LayerDst, size_t FaceDst, size_t LevelDst, extent_type const &amp;OffsetDst, extent_type const &amp;Extent)</td></tr>
<tr class="memdesc:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a subset of a specific image of a texture. <br /></td></tr>
<tr class="separator:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f2c67dc864c6b6e705710853b5568ef"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3f2c67dc864c6b6e705710853b5568ef">data</a> ()</td></tr>
<tr class="memdesc:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="aecfb33a652ea3f984735a031e4af697f"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#aecfb33a652ea3f984735a031e4af697f">data</a> ()</td></tr>
<tr class="memdesc:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec236abf7eac8ff4eec54eda033b9288"></a>
void const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aec236abf7eac8ff4eec54eda033b9288">data</a> () const </td></tr>
<tr class="memdesc:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a8c538fecdc895b20bbd61890bffe0fdb"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a8c538fecdc895b20bbd61890bffe0fdb">data</a> () const </td></tr>
<tr class="memdesc:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a76d02b884284dee754400f17bb7f5053"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a76d02b884284dee754400f17bb7f5053">data</a> (size_type Layer, size_type Face, size_type Level)</td></tr>
<tr class="memdesc:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad0d21d1d0e5888e0d546dc585d30249"></a>
void const *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aad0d21d1d0e5888e0d546dc585d30249">data</a> (size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a42214ff33bec0fa5dd52c2b0df7dcdbe"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a42214ff33bec0fa5dd52c2b0df7dcdbe">data</a> (size_type Layer, size_type Face, size_type Level)</td></tr>
<tr class="memdesc:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a272d7f02634851f003d81a25407ba782"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type const *const&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a272d7f02634851f003d81a25407ba782">data</a> (size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac6e61de369e994009e36f344f99c15ad"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ac6e61de369e994009e36f344f99c15ad">empty</a> () const </td></tr>
<tr class="memdesc:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether the texture instance is empty, no storage_type or description have been assigned to the instance. <br /></td></tr>
<tr class="separator:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9122bf87edd23bd731bd9eaf072e757"></a>
extent_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aa9122bf87edd23bd731bd9eaf072e757">extent</a> (size_type Level=0) const </td></tr>
<tr class="memdesc:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the size of a texture instance: width, height and depth. <br /></td></tr>
<tr class="separator:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3914cdf138e9267662ac7147fe71d644"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3914cdf138e9267662ac7147fe71d644">faces</a> () const </td></tr>
<tr class="memdesc:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#aa18daf8e8534d4cefabf3b7dfd43a6f3" title="Return the max face of the texture instance, effectively a memory offset to the beginning of the last...">max_face()</a> - <a class="el" href="a00012.html#ae7c1f35cf657c7bbe9eae2b39e44f728" title="Return the base face of the texture instance, effectively a memory offset in the actual texture stora...">base_face()</a> + 1. <br /></td></tr>
<tr class="separator:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad94928ca00873970455c1fb2d3c03fd8"></a>
<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ad94928ca00873970455c1fb2d3c03fd8">format</a> () const </td></tr>
<tr class="memdesc:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the texture instance format. <br /></td></tr>
<tr class="separator:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac4e6a627c907856620b7eb161c9b85d"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aac4e6a627c907856620b7eb161c9b85d">layers</a> () const </td></tr>
<tr class="memdesc:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#af8ae0072dcfb583fcd278650b3f55ec6" title="Return the max layer of the texture instance, effectively a memory offset to the beginning of the las...">max_layer()</a> - <a class="el" href="a00012.html#a1aeb020d8f82035e607b209c3841dee2" title="Return the base layer of the texture instance, effectively a memory offset in the actual texture stor...">base_layer()</a> + 1. <br /></td></tr>
<tr class="separator:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9b85eb415046f5a31b2d9eff8cefc24c"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9b85eb415046f5a31b2d9eff8cefc24c">levels</a> () const </td></tr>
<tr class="memdesc:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#ae174e356683cee9bf9d3e11df4d6f78a" title="Return the max level of the texture instance, effectively a memory offset to the beginning of the las...">max_level()</a> - <a class="el" href="a00012.html#a01c07293e367b293736943e92f6a9e98" title="Return the base level of the texture instance, effectively a memory offset in the actual texture stor...">base_level()</a> + 1. <br /></td></tr>
<tr class="separator:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a643d8893b84d50b7a3c7fc53b218da8a"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a643d8893b84d50b7a3c7fc53b218da8a">load</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa18daf8e8534d4cefabf3b7dfd43a6f3"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aa18daf8e8534d4cefabf3b7dfd43a6f3">max_face</a> () const </td></tr>
<tr class="memdesc:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max face of the texture instance, effectively a memory offset to the beginning of the last face in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8ae0072dcfb583fcd278650b3f55ec6"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#af8ae0072dcfb583fcd278650b3f55ec6">max_layer</a> () const </td></tr>
<tr class="memdesc:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max layer of the texture instance, effectively a memory offset to the beginning of the last layer in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae174e356683cee9bf9d3e11df4d6f78a"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ae174e356683cee9bf9d3e11df4d6f78a">max_level</a> () const </td></tr>
<tr class="memdesc:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max level of the texture instance, effectively a memory offset to the beginning of the last level in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a503ab01f6c0142145d3434f6924714e7"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a503ab01f6c0142145d3434f6924714e7">size</a> () const </td></tr>
<tr class="memdesc:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a texture instance storage_type in bytes. <br /></td></tr>
<tr class="separator:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">size_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a24789b8cce4dcbe8e0d3a47b68447aba">size</a> () const </td></tr>
<tr class="memdesc:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of blocks contained in a texture instance storage_type. <a href="#a24789b8cce4dcbe8e0d3a47b68447aba">More...</a><br /></td></tr>
<tr class="separator:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a46f11d7b73797c3e4b9a6da00f505fd8"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a46f11d7b73797c3e4b9a6da00f505fd8">size</a> (size_type Level) const </td></tr>
<tr class="memdesc:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a specific level identified by Level. <br /></td></tr>
<tr class="separator:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">size_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a665df3b51266310cd164cd5aa9c6e80e">size</a> (size_type Level) const </td></tr>
<tr class="memdesc:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a specific level identified by Level. <a href="#a665df3b51266310cd164cd5aa9c6e80e">More...</a><br /></td></tr>
<tr class="separator:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a290419a437522cfe1981880fbfd9f810"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a290419a437522cfe1981880fbfd9f810">store</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Face, size_type Level, gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel to a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="aa2c92d09106b13d3d20dd0909ada8a68"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#aa2c92d09106b13d3d20dd0909ada8a68">swizzle</a> (gli::swizzles const &amp;Swizzles)</td></tr>
<tr class="memdesc:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reorder the component in texture memory. <br /></td></tr>
<tr class="separator:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59d3d7946e94bc294444c5f55db70c21"></a>
<a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a59d3d7946e94bc294444c5f55db70c21">target</a> () const </td></tr>
<tr class="memdesc:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the target of a texture instance. <br /></td></tr>
<tr class="separator:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9921e1ac4df78bce54d328affd59da28"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9921e1ac4df78bce54d328affd59da28">texture</a> ()</td></tr>
<tr class="memdesc:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty texture instance. <br /></td></tr>
<tr class="separator:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a4ca26840db935a649290350da2b5f5ca">texture</a> (<a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, size_type Layers, size_type Faces, size_type Levels, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object and allocate a texture storage for it. <a href="#a4ca26840db935a649290350da2b5f5ca">More...</a><br /></td></tr>
<tr class="separator:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9bbe0e3db3a8e9b7878acf20bc9f4c81">texture</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, size_type BaseLayer, size_type MaxLayer, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object by sharing an existing texture storage_type from another texture instance. <a href="#a9bbe0e3db3a8e9b7878acf20bc9f4c81">More...</a><br /></td></tr>
<tr class="separator:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3efa6c67e681cdb4630d99cbb355aa3d">texture</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object by sharing an existing texture storage_type from another texture instance. <a href="#a3efa6c67e681cdb4630d99cbb355aa3d">More...</a><br /></td></tr>
<tr class="separator:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>2d array texture </p>
<p>Definition at line <a class="el" href="a00066_source.html#l00011">11</a> of file <a class="el" href="a00066_source.html">texture2d_array.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

BIN
external/gli/doc/api/a00016.png vendored 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 B

326
external/gli/doc/api/a00017.html vendored 100644
View File

@ -0,0 +1,326 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: texture3d Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00074.html">gli</a></li><li class="navelem"><a class="el" href="a00017.html">texture3d</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00095.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">texture3d Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>3d texture
<a href="a00017.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for texture3d:</div>
<div class="dyncontent">
<div class="center">
<img src="a00017.png" usemap="#texture3d_map" alt=""/>
<map id="texture3d_map" name="texture3d_map">
<area href="a00012.html" title="Genetic texture class. It can support any target. " alt="texture" shape="rect" coords="0,0,64,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa9122bf87edd23bd731bd9eaf072e757"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9122bf87edd23bd731bd9eaf072e757"></a>
extent_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00017.html#aa9122bf87edd23bd731bd9eaf072e757">extent</a> (size_type Level=0) const </td></tr>
<tr class="memdesc:aa9122bf87edd23bd731bd9eaf072e757"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the dimensions of a texture instance: width, height and depth. <br /></td></tr>
<tr class="separator:aa9122bf87edd23bd731bd9eaf072e757"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91093dbf82799b0838fe1828cdfe05eb"><td class="memTemplParams" colspan="2"><a class="anchor" id="a91093dbf82799b0838fe1828cdfe05eb"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a91093dbf82799b0838fe1828cdfe05eb"><td class="memTemplItemLeft" align="right" valign="top">gen_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00017.html#a91093dbf82799b0838fe1828cdfe05eb">load</a> (extent_type const &amp;TexelCoord, size_type Level) const </td></tr>
<tr class="memdesc:a91093dbf82799b0838fe1828cdfe05eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a91093dbf82799b0838fe1828cdfe05eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af56d4d7adaa673dfb24e406acbf362cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af56d4d7adaa673dfb24e406acbf362cc"></a>
<a class="el" href="a00003.html">image</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00017.html#af56d4d7adaa673dfb24e406acbf362cc">operator[]</a> (size_type Level) const </td></tr>
<tr class="memdesc:af56d4d7adaa673dfb24e406acbf362cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a view of the image identified by Level in the mipmap chain of the texture. <br /></td></tr>
<tr class="separator:af56d4d7adaa673dfb24e406acbf362cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a50cbe79dfa186affb1811e96c73a95"><td class="memTemplParams" colspan="2"><a class="anchor" id="a9a50cbe79dfa186affb1811e96c73a95"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a9a50cbe79dfa186affb1811e96c73a95"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00017.html#a9a50cbe79dfa186affb1811e96c73a95">store</a> (extent_type const &amp;TexelCoord, size_type Level, gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a9a50cbe79dfa186affb1811e96c73a95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel to a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a9a50cbe79dfa186affb1811e96c73a95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a674805423bd5cc6a3c767b4c33eeeb9f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a674805423bd5cc6a3c767b4c33eeeb9f"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00017.html#a674805423bd5cc6a3c767b4c33eeeb9f">texture3d</a> ()</td></tr>
<tr class="memdesc:a674805423bd5cc6a3c767b4c33eeeb9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty texture 3D. <br /></td></tr>
<tr class="separator:a674805423bd5cc6a3c767b4c33eeeb9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f151e7060e3ad9f4c29398dc502b6dc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f151e7060e3ad9f4c29398dc502b6dc"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00017.html#a7f151e7060e3ad9f4c29398dc502b6dc">texture3d</a> (<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, size_type Levels, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a7f151e7060e3ad9f4c29398dc502b6dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00017.html" title="3d texture ">texture3d</a> and allocate a new storage_linear. <br /></td></tr>
<tr class="separator:a7f151e7060e3ad9f4c29398dc502b6dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad454b79aa66ce12e9cde041c4e1eab20"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad454b79aa66ce12e9cde041c4e1eab20"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00017.html#ad454b79aa66ce12e9cde041c4e1eab20">texture3d</a> (<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:ad454b79aa66ce12e9cde041c4e1eab20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00017.html" title="3d texture ">texture3d</a> and allocate a new storage_linear with a complete mipmap chain. <br /></td></tr>
<tr class="separator:ad454b79aa66ce12e9cde041c4e1eab20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1684626125c8270fc1e12a53db7c37fb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1684626125c8270fc1e12a53db7c37fb"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00017.html#a1684626125c8270fc1e12a53db7c37fb">texture3d</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture)</td></tr>
<tr class="memdesc:a1684626125c8270fc1e12a53db7c37fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00017.html" title="3d texture ">texture3d</a> view with an existing storage_linear. <br /></td></tr>
<tr class="separator:a1684626125c8270fc1e12a53db7c37fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46536f2fa53ace0f51b6fc8820de9344"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a46536f2fa53ace0f51b6fc8820de9344"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00017.html#a46536f2fa53ace0f51b6fc8820de9344">texture3d</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, size_type BaseLayer, size_type MaxLayer, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a46536f2fa53ace0f51b6fc8820de9344"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00017.html" title="3d texture ">texture3d</a> view with an existing storage_linear. <br /></td></tr>
<tr class="separator:a46536f2fa53ace0f51b6fc8820de9344"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada56d4288fb69338912b751bdb9278a5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada56d4288fb69338912b751bdb9278a5"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00017.html#ada56d4288fb69338912b751bdb9278a5">texture3d</a> (<a class="el" href="a00017.html">texture3d</a> const &amp;Texture, size_type BaseLevel, size_type MaxLevel)</td></tr>
<tr class="memdesc:ada56d4288fb69338912b751bdb9278a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00017.html" title="3d texture ">texture3d</a> view, reference a subset of an existing <a class="el" href="a00017.html" title="3d texture ">texture3d</a> instance. <br /></td></tr>
<tr class="separator:ada56d4288fb69338912b751bdb9278a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_a00012"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_a00012')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="a00012.html">texture</a></td></tr>
<tr class="memitem:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7c1f35cf657c7bbe9eae2b39e44f728"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ae7c1f35cf657c7bbe9eae2b39e44f728">base_face</a> () const </td></tr>
<tr class="memdesc:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base face of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the faces. <br /></td></tr>
<tr class="separator:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1aeb020d8f82035e607b209c3841dee2"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a1aeb020d8f82035e607b209c3841dee2">base_layer</a> () const </td></tr>
<tr class="memdesc:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base layer of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the layers. <br /></td></tr>
<tr class="separator:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01c07293e367b293736943e92f6a9e98"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a01c07293e367b293736943e92f6a9e98">base_level</a> () const </td></tr>
<tr class="memdesc:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base level of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the levels. <br /></td></tr>
<tr class="separator:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8bb3912a3ce86b15842e79d0b421204"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a> ()</td></tr>
<tr class="memdesc:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the entire texture storage_linear with zeros. <br /></td></tr>
<tr class="separator:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a5430e0073bc8a24264b7133f25f0edec">clear</a> (gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the entire texture storage_linear with Texel which type must match the texture storage_linear format block size If the type of gen_type doesn't match the type of the texture format, no conversion is performed and the data will be reinterpreted as if is was of the texture format. <a href="#a5430e0073bc8a24264b7133f25f0edec">More...</a><br /></td></tr>
<tr class="separator:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a54710883dcdf8a8f8f9bfc13e9dd5398"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a54710883dcdf8a8f8f9bfc13e9dd5398">clear</a> (size_type Layer, size_type Face, size_type Level, gen_type const &amp;BlockData)</td></tr>
<tr class="memdesc:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a specific image of a texture. <br /></td></tr>
<tr class="separator:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1df5aef4908916286c693427ae042eca"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a1df5aef4908916286c693427ae042eca">clear</a> (size_type Layer, size_type Face, size_type Level, extent_type const &amp;TexelOffset, extent_type const &amp;TexelExtent, gen_type const &amp;BlockData)</td></tr>
<tr class="memdesc:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a subset of a specific image of a texture. <br /></td></tr>
<tr class="separator:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade92aae99ac3524a83809acdfd8c0715"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ade92aae99ac3524a83809acdfd8c0715">copy</a> (<a class="el" href="a00012.html">texture</a> const &amp;TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, size_t LayerDst, size_t FaceDst, size_t LevelDst)</td></tr>
<tr class="memdesc:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a specific image of a texture. <br /></td></tr>
<tr class="separator:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace50b0c766f3c82847eda49459eec7e0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ace50b0c766f3c82847eda49459eec7e0">copy</a> (<a class="el" href="a00012.html">texture</a> const &amp;TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, extent_type const &amp;OffsetSrc, size_t LayerDst, size_t FaceDst, size_t LevelDst, extent_type const &amp;OffsetDst, extent_type const &amp;Extent)</td></tr>
<tr class="memdesc:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a subset of a specific image of a texture. <br /></td></tr>
<tr class="separator:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f2c67dc864c6b6e705710853b5568ef"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3f2c67dc864c6b6e705710853b5568ef">data</a> ()</td></tr>
<tr class="memdesc:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="aecfb33a652ea3f984735a031e4af697f"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#aecfb33a652ea3f984735a031e4af697f">data</a> ()</td></tr>
<tr class="memdesc:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec236abf7eac8ff4eec54eda033b9288"></a>
void const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aec236abf7eac8ff4eec54eda033b9288">data</a> () const </td></tr>
<tr class="memdesc:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a8c538fecdc895b20bbd61890bffe0fdb"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a8c538fecdc895b20bbd61890bffe0fdb">data</a> () const </td></tr>
<tr class="memdesc:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a76d02b884284dee754400f17bb7f5053"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a76d02b884284dee754400f17bb7f5053">data</a> (size_type Layer, size_type Face, size_type Level)</td></tr>
<tr class="memdesc:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad0d21d1d0e5888e0d546dc585d30249"></a>
void const *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aad0d21d1d0e5888e0d546dc585d30249">data</a> (size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a42214ff33bec0fa5dd52c2b0df7dcdbe"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a42214ff33bec0fa5dd52c2b0df7dcdbe">data</a> (size_type Layer, size_type Face, size_type Level)</td></tr>
<tr class="memdesc:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a272d7f02634851f003d81a25407ba782"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type const *const&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a272d7f02634851f003d81a25407ba782">data</a> (size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac6e61de369e994009e36f344f99c15ad"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ac6e61de369e994009e36f344f99c15ad">empty</a> () const </td></tr>
<tr class="memdesc:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether the texture instance is empty, no storage_type or description have been assigned to the instance. <br /></td></tr>
<tr class="separator:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9122bf87edd23bd731bd9eaf072e757"></a>
extent_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aa9122bf87edd23bd731bd9eaf072e757">extent</a> (size_type Level=0) const </td></tr>
<tr class="memdesc:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the size of a texture instance: width, height and depth. <br /></td></tr>
<tr class="separator:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3914cdf138e9267662ac7147fe71d644"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3914cdf138e9267662ac7147fe71d644">faces</a> () const </td></tr>
<tr class="memdesc:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#aa18daf8e8534d4cefabf3b7dfd43a6f3" title="Return the max face of the texture instance, effectively a memory offset to the beginning of the last...">max_face()</a> - <a class="el" href="a00012.html#ae7c1f35cf657c7bbe9eae2b39e44f728" title="Return the base face of the texture instance, effectively a memory offset in the actual texture stora...">base_face()</a> + 1. <br /></td></tr>
<tr class="separator:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad94928ca00873970455c1fb2d3c03fd8"></a>
<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ad94928ca00873970455c1fb2d3c03fd8">format</a> () const </td></tr>
<tr class="memdesc:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the texture instance format. <br /></td></tr>
<tr class="separator:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac4e6a627c907856620b7eb161c9b85d"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aac4e6a627c907856620b7eb161c9b85d">layers</a> () const </td></tr>
<tr class="memdesc:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#af8ae0072dcfb583fcd278650b3f55ec6" title="Return the max layer of the texture instance, effectively a memory offset to the beginning of the las...">max_layer()</a> - <a class="el" href="a00012.html#a1aeb020d8f82035e607b209c3841dee2" title="Return the base layer of the texture instance, effectively a memory offset in the actual texture stor...">base_layer()</a> + 1. <br /></td></tr>
<tr class="separator:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9b85eb415046f5a31b2d9eff8cefc24c"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9b85eb415046f5a31b2d9eff8cefc24c">levels</a> () const </td></tr>
<tr class="memdesc:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#ae174e356683cee9bf9d3e11df4d6f78a" title="Return the max level of the texture instance, effectively a memory offset to the beginning of the las...">max_level()</a> - <a class="el" href="a00012.html#a01c07293e367b293736943e92f6a9e98" title="Return the base level of the texture instance, effectively a memory offset in the actual texture stor...">base_level()</a> + 1. <br /></td></tr>
<tr class="separator:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a643d8893b84d50b7a3c7fc53b218da8a"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a643d8893b84d50b7a3c7fc53b218da8a">load</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa18daf8e8534d4cefabf3b7dfd43a6f3"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aa18daf8e8534d4cefabf3b7dfd43a6f3">max_face</a> () const </td></tr>
<tr class="memdesc:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max face of the texture instance, effectively a memory offset to the beginning of the last face in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8ae0072dcfb583fcd278650b3f55ec6"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#af8ae0072dcfb583fcd278650b3f55ec6">max_layer</a> () const </td></tr>
<tr class="memdesc:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max layer of the texture instance, effectively a memory offset to the beginning of the last layer in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae174e356683cee9bf9d3e11df4d6f78a"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ae174e356683cee9bf9d3e11df4d6f78a">max_level</a> () const </td></tr>
<tr class="memdesc:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max level of the texture instance, effectively a memory offset to the beginning of the last level in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a503ab01f6c0142145d3434f6924714e7"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a503ab01f6c0142145d3434f6924714e7">size</a> () const </td></tr>
<tr class="memdesc:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a texture instance storage_type in bytes. <br /></td></tr>
<tr class="separator:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">size_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a24789b8cce4dcbe8e0d3a47b68447aba">size</a> () const </td></tr>
<tr class="memdesc:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of blocks contained in a texture instance storage_type. <a href="#a24789b8cce4dcbe8e0d3a47b68447aba">More...</a><br /></td></tr>
<tr class="separator:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a46f11d7b73797c3e4b9a6da00f505fd8"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a46f11d7b73797c3e4b9a6da00f505fd8">size</a> (size_type Level) const </td></tr>
<tr class="memdesc:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a specific level identified by Level. <br /></td></tr>
<tr class="separator:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">size_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a665df3b51266310cd164cd5aa9c6e80e">size</a> (size_type Level) const </td></tr>
<tr class="memdesc:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a specific level identified by Level. <a href="#a665df3b51266310cd164cd5aa9c6e80e">More...</a><br /></td></tr>
<tr class="separator:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a290419a437522cfe1981880fbfd9f810"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a290419a437522cfe1981880fbfd9f810">store</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Face, size_type Level, gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel to a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="aa2c92d09106b13d3d20dd0909ada8a68"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#aa2c92d09106b13d3d20dd0909ada8a68">swizzle</a> (gli::swizzles const &amp;Swizzles)</td></tr>
<tr class="memdesc:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reorder the component in texture memory. <br /></td></tr>
<tr class="separator:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59d3d7946e94bc294444c5f55db70c21"></a>
<a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a59d3d7946e94bc294444c5f55db70c21">target</a> () const </td></tr>
<tr class="memdesc:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the target of a texture instance. <br /></td></tr>
<tr class="separator:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9921e1ac4df78bce54d328affd59da28"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9921e1ac4df78bce54d328affd59da28">texture</a> ()</td></tr>
<tr class="memdesc:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty texture instance. <br /></td></tr>
<tr class="separator:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a4ca26840db935a649290350da2b5f5ca">texture</a> (<a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, size_type Layers, size_type Faces, size_type Levels, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object and allocate a texture storage for it. <a href="#a4ca26840db935a649290350da2b5f5ca">More...</a><br /></td></tr>
<tr class="separator:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9bbe0e3db3a8e9b7878acf20bc9f4c81">texture</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, size_type BaseLayer, size_type MaxLayer, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object by sharing an existing texture storage_type from another texture instance. <a href="#a9bbe0e3db3a8e9b7878acf20bc9f4c81">More...</a><br /></td></tr>
<tr class="separator:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3efa6c67e681cdb4630d99cbb355aa3d">texture</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object by sharing an existing texture storage_type from another texture instance. <a href="#a3efa6c67e681cdb4630d99cbb355aa3d">More...</a><br /></td></tr>
<tr class="separator:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>3d texture </p>
<p>Definition at line <a class="el" href="a00067_source.html#l00012">12</a> of file <a class="el" href="a00067_source.html">texture3d.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

BIN
external/gli/doc/api/a00017.png vendored 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 B

326
external/gli/doc/api/a00018.html vendored 100644
View File

@ -0,0 +1,326 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: texture_cube Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00074.html">gli</a></li><li class="navelem"><a class="el" href="a00018.html">texture_cube</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00096.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">texture_cube Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Cube map texture.
<a href="a00018.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for texture_cube:</div>
<div class="dyncontent">
<div class="center">
<img src="a00018.png" usemap="#texture_cube_map" alt=""/>
<map id="texture_cube_map" name="texture_cube_map">
<area href="a00012.html" title="Genetic texture class. It can support any target. " alt="texture" shape="rect" coords="0,0,85,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa9122bf87edd23bd731bd9eaf072e757"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9122bf87edd23bd731bd9eaf072e757"></a>
extent_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#aa9122bf87edd23bd731bd9eaf072e757">extent</a> (size_type Level=0) const </td></tr>
<tr class="memdesc:aa9122bf87edd23bd731bd9eaf072e757"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the dimensions of a texture instance: width and height where both should be equal. <br /></td></tr>
<tr class="separator:aa9122bf87edd23bd731bd9eaf072e757"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae5add7b2c9cdec42300fbfcf737460a"><td class="memTemplParams" colspan="2"><a class="anchor" id="aae5add7b2c9cdec42300fbfcf737460a"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:aae5add7b2c9cdec42300fbfcf737460a"><td class="memTemplItemLeft" align="right" valign="top">gen_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00018.html#aae5add7b2c9cdec42300fbfcf737460a">load</a> (extent_type const &amp;TexelCoord, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:aae5add7b2c9cdec42300fbfcf737460a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:aae5add7b2c9cdec42300fbfcf737460a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6543ff56d9f3f5ac7928d535d73406aa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6543ff56d9f3f5ac7928d535d73406aa"></a>
<a class="el" href="a00015.html">texture2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#a6543ff56d9f3f5ac7928d535d73406aa">operator[]</a> (size_type Face) const </td></tr>
<tr class="memdesc:a6543ff56d9f3f5ac7928d535d73406aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a view of the texture identified by Face in the texture cube. <br /></td></tr>
<tr class="separator:a6543ff56d9f3f5ac7928d535d73406aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ac10efd79ea9c5d1c68b4a1d774e6c8"><td class="memTemplParams" colspan="2"><a class="anchor" id="a9ac10efd79ea9c5d1c68b4a1d774e6c8"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a9ac10efd79ea9c5d1c68b4a1d774e6c8"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00018.html#a9ac10efd79ea9c5d1c68b4a1d774e6c8">store</a> (extent_type const &amp;TexelCoord, size_type Face, size_type Level, gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a9ac10efd79ea9c5d1c68b4a1d774e6c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel to a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a9ac10efd79ea9c5d1c68b4a1d774e6c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63fbdb5a8e25e961bcda4a364e6f93f8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63fbdb5a8e25e961bcda4a364e6f93f8"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#a63fbdb5a8e25e961bcda4a364e6f93f8">texture_cube</a> ()</td></tr>
<tr class="memdesc:a63fbdb5a8e25e961bcda4a364e6f93f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty texture cube. <br /></td></tr>
<tr class="separator:a63fbdb5a8e25e961bcda4a364e6f93f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abad8ad5e5c675d10924ee7c2e5ac05e5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abad8ad5e5c675d10924ee7c2e5ac05e5"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#abad8ad5e5c675d10924ee7c2e5ac05e5">texture_cube</a> (<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, size_type Levels, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:abad8ad5e5c675d10924ee7c2e5ac05e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00018.html" title="Cube map texture. ">texture_cube</a> and allocate a new storage_linear. <br /></td></tr>
<tr class="separator:abad8ad5e5c675d10924ee7c2e5ac05e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a030886a080600295a4ce8b4fe9503a1f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a030886a080600295a4ce8b4fe9503a1f"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#a030886a080600295a4ce8b4fe9503a1f">texture_cube</a> (<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a030886a080600295a4ce8b4fe9503a1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00018.html" title="Cube map texture. ">texture_cube</a> and allocate a new storage_linear with a complete mipmap chain. <br /></td></tr>
<tr class="separator:a030886a080600295a4ce8b4fe9503a1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7d04a77012aacf96a5a6802ec777891"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad7d04a77012aacf96a5a6802ec777891"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ad7d04a77012aacf96a5a6802ec777891">texture_cube</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture)</td></tr>
<tr class="memdesc:ad7d04a77012aacf96a5a6802ec777891"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00018.html" title="Cube map texture. ">texture_cube</a> view with an existing storage_linear. <br /></td></tr>
<tr class="separator:ad7d04a77012aacf96a5a6802ec777891"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9e344bde8201f02dcafcd817687bfdb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad9e344bde8201f02dcafcd817687bfdb"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ad9e344bde8201f02dcafcd817687bfdb">texture_cube</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, size_type BaseLayer, size_type MaxLayer, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:ad9e344bde8201f02dcafcd817687bfdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00018.html" title="Cube map texture. ">texture_cube</a> view with an existing storage_linear. <br /></td></tr>
<tr class="separator:ad9e344bde8201f02dcafcd817687bfdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9fbc90d3db03e6e0427d99fbc0107d2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae9fbc90d3db03e6e0427d99fbc0107d2"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ae9fbc90d3db03e6e0427d99fbc0107d2">texture_cube</a> (<a class="el" href="a00018.html">texture_cube</a> const &amp;Texture, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel)</td></tr>
<tr class="memdesc:ae9fbc90d3db03e6e0427d99fbc0107d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00018.html" title="Cube map texture. ">texture_cube</a> view, reference a subset of an existing <a class="el" href="a00018.html" title="Cube map texture. ">texture_cube</a> instance. <br /></td></tr>
<tr class="separator:ae9fbc90d3db03e6e0427d99fbc0107d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_a00012"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_a00012')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="a00012.html">texture</a></td></tr>
<tr class="memitem:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7c1f35cf657c7bbe9eae2b39e44f728"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ae7c1f35cf657c7bbe9eae2b39e44f728">base_face</a> () const </td></tr>
<tr class="memdesc:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base face of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the faces. <br /></td></tr>
<tr class="separator:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1aeb020d8f82035e607b209c3841dee2"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a1aeb020d8f82035e607b209c3841dee2">base_layer</a> () const </td></tr>
<tr class="memdesc:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base layer of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the layers. <br /></td></tr>
<tr class="separator:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01c07293e367b293736943e92f6a9e98"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a01c07293e367b293736943e92f6a9e98">base_level</a> () const </td></tr>
<tr class="memdesc:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base level of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the levels. <br /></td></tr>
<tr class="separator:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8bb3912a3ce86b15842e79d0b421204"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a> ()</td></tr>
<tr class="memdesc:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the entire texture storage_linear with zeros. <br /></td></tr>
<tr class="separator:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a5430e0073bc8a24264b7133f25f0edec">clear</a> (gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the entire texture storage_linear with Texel which type must match the texture storage_linear format block size If the type of gen_type doesn't match the type of the texture format, no conversion is performed and the data will be reinterpreted as if is was of the texture format. <a href="#a5430e0073bc8a24264b7133f25f0edec">More...</a><br /></td></tr>
<tr class="separator:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a54710883dcdf8a8f8f9bfc13e9dd5398"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a54710883dcdf8a8f8f9bfc13e9dd5398">clear</a> (size_type Layer, size_type Face, size_type Level, gen_type const &amp;BlockData)</td></tr>
<tr class="memdesc:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a specific image of a texture. <br /></td></tr>
<tr class="separator:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1df5aef4908916286c693427ae042eca"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a1df5aef4908916286c693427ae042eca">clear</a> (size_type Layer, size_type Face, size_type Level, extent_type const &amp;TexelOffset, extent_type const &amp;TexelExtent, gen_type const &amp;BlockData)</td></tr>
<tr class="memdesc:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a subset of a specific image of a texture. <br /></td></tr>
<tr class="separator:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade92aae99ac3524a83809acdfd8c0715"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ade92aae99ac3524a83809acdfd8c0715">copy</a> (<a class="el" href="a00012.html">texture</a> const &amp;TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, size_t LayerDst, size_t FaceDst, size_t LevelDst)</td></tr>
<tr class="memdesc:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a specific image of a texture. <br /></td></tr>
<tr class="separator:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace50b0c766f3c82847eda49459eec7e0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ace50b0c766f3c82847eda49459eec7e0">copy</a> (<a class="el" href="a00012.html">texture</a> const &amp;TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, extent_type const &amp;OffsetSrc, size_t LayerDst, size_t FaceDst, size_t LevelDst, extent_type const &amp;OffsetDst, extent_type const &amp;Extent)</td></tr>
<tr class="memdesc:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a subset of a specific image of a texture. <br /></td></tr>
<tr class="separator:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f2c67dc864c6b6e705710853b5568ef"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3f2c67dc864c6b6e705710853b5568ef">data</a> ()</td></tr>
<tr class="memdesc:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="aecfb33a652ea3f984735a031e4af697f"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#aecfb33a652ea3f984735a031e4af697f">data</a> ()</td></tr>
<tr class="memdesc:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec236abf7eac8ff4eec54eda033b9288"></a>
void const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aec236abf7eac8ff4eec54eda033b9288">data</a> () const </td></tr>
<tr class="memdesc:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a8c538fecdc895b20bbd61890bffe0fdb"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a8c538fecdc895b20bbd61890bffe0fdb">data</a> () const </td></tr>
<tr class="memdesc:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a76d02b884284dee754400f17bb7f5053"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a76d02b884284dee754400f17bb7f5053">data</a> (size_type Layer, size_type Face, size_type Level)</td></tr>
<tr class="memdesc:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad0d21d1d0e5888e0d546dc585d30249"></a>
void const *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aad0d21d1d0e5888e0d546dc585d30249">data</a> (size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a42214ff33bec0fa5dd52c2b0df7dcdbe"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a42214ff33bec0fa5dd52c2b0df7dcdbe">data</a> (size_type Layer, size_type Face, size_type Level)</td></tr>
<tr class="memdesc:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a272d7f02634851f003d81a25407ba782"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type const *const&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a272d7f02634851f003d81a25407ba782">data</a> (size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac6e61de369e994009e36f344f99c15ad"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ac6e61de369e994009e36f344f99c15ad">empty</a> () const </td></tr>
<tr class="memdesc:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether the texture instance is empty, no storage_type or description have been assigned to the instance. <br /></td></tr>
<tr class="separator:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9122bf87edd23bd731bd9eaf072e757"></a>
extent_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aa9122bf87edd23bd731bd9eaf072e757">extent</a> (size_type Level=0) const </td></tr>
<tr class="memdesc:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the size of a texture instance: width, height and depth. <br /></td></tr>
<tr class="separator:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3914cdf138e9267662ac7147fe71d644"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3914cdf138e9267662ac7147fe71d644">faces</a> () const </td></tr>
<tr class="memdesc:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#aa18daf8e8534d4cefabf3b7dfd43a6f3" title="Return the max face of the texture instance, effectively a memory offset to the beginning of the last...">max_face()</a> - <a class="el" href="a00012.html#ae7c1f35cf657c7bbe9eae2b39e44f728" title="Return the base face of the texture instance, effectively a memory offset in the actual texture stora...">base_face()</a> + 1. <br /></td></tr>
<tr class="separator:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad94928ca00873970455c1fb2d3c03fd8"></a>
<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ad94928ca00873970455c1fb2d3c03fd8">format</a> () const </td></tr>
<tr class="memdesc:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the texture instance format. <br /></td></tr>
<tr class="separator:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac4e6a627c907856620b7eb161c9b85d"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aac4e6a627c907856620b7eb161c9b85d">layers</a> () const </td></tr>
<tr class="memdesc:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#af8ae0072dcfb583fcd278650b3f55ec6" title="Return the max layer of the texture instance, effectively a memory offset to the beginning of the las...">max_layer()</a> - <a class="el" href="a00012.html#a1aeb020d8f82035e607b209c3841dee2" title="Return the base layer of the texture instance, effectively a memory offset in the actual texture stor...">base_layer()</a> + 1. <br /></td></tr>
<tr class="separator:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9b85eb415046f5a31b2d9eff8cefc24c"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9b85eb415046f5a31b2d9eff8cefc24c">levels</a> () const </td></tr>
<tr class="memdesc:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#ae174e356683cee9bf9d3e11df4d6f78a" title="Return the max level of the texture instance, effectively a memory offset to the beginning of the las...">max_level()</a> - <a class="el" href="a00012.html#a01c07293e367b293736943e92f6a9e98" title="Return the base level of the texture instance, effectively a memory offset in the actual texture stor...">base_level()</a> + 1. <br /></td></tr>
<tr class="separator:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a643d8893b84d50b7a3c7fc53b218da8a"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a643d8893b84d50b7a3c7fc53b218da8a">load</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa18daf8e8534d4cefabf3b7dfd43a6f3"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aa18daf8e8534d4cefabf3b7dfd43a6f3">max_face</a> () const </td></tr>
<tr class="memdesc:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max face of the texture instance, effectively a memory offset to the beginning of the last face in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8ae0072dcfb583fcd278650b3f55ec6"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#af8ae0072dcfb583fcd278650b3f55ec6">max_layer</a> () const </td></tr>
<tr class="memdesc:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max layer of the texture instance, effectively a memory offset to the beginning of the last layer in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae174e356683cee9bf9d3e11df4d6f78a"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ae174e356683cee9bf9d3e11df4d6f78a">max_level</a> () const </td></tr>
<tr class="memdesc:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max level of the texture instance, effectively a memory offset to the beginning of the last level in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a503ab01f6c0142145d3434f6924714e7"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a503ab01f6c0142145d3434f6924714e7">size</a> () const </td></tr>
<tr class="memdesc:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a texture instance storage_type in bytes. <br /></td></tr>
<tr class="separator:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">size_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a24789b8cce4dcbe8e0d3a47b68447aba">size</a> () const </td></tr>
<tr class="memdesc:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of blocks contained in a texture instance storage_type. <a href="#a24789b8cce4dcbe8e0d3a47b68447aba">More...</a><br /></td></tr>
<tr class="separator:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a46f11d7b73797c3e4b9a6da00f505fd8"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a46f11d7b73797c3e4b9a6da00f505fd8">size</a> (size_type Level) const </td></tr>
<tr class="memdesc:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a specific level identified by Level. <br /></td></tr>
<tr class="separator:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">size_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a665df3b51266310cd164cd5aa9c6e80e">size</a> (size_type Level) const </td></tr>
<tr class="memdesc:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a specific level identified by Level. <a href="#a665df3b51266310cd164cd5aa9c6e80e">More...</a><br /></td></tr>
<tr class="separator:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a290419a437522cfe1981880fbfd9f810"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a290419a437522cfe1981880fbfd9f810">store</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Face, size_type Level, gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel to a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="aa2c92d09106b13d3d20dd0909ada8a68"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#aa2c92d09106b13d3d20dd0909ada8a68">swizzle</a> (gli::swizzles const &amp;Swizzles)</td></tr>
<tr class="memdesc:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reorder the component in texture memory. <br /></td></tr>
<tr class="separator:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59d3d7946e94bc294444c5f55db70c21"></a>
<a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a59d3d7946e94bc294444c5f55db70c21">target</a> () const </td></tr>
<tr class="memdesc:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the target of a texture instance. <br /></td></tr>
<tr class="separator:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9921e1ac4df78bce54d328affd59da28"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9921e1ac4df78bce54d328affd59da28">texture</a> ()</td></tr>
<tr class="memdesc:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty texture instance. <br /></td></tr>
<tr class="separator:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a4ca26840db935a649290350da2b5f5ca">texture</a> (<a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, size_type Layers, size_type Faces, size_type Levels, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object and allocate a texture storage for it. <a href="#a4ca26840db935a649290350da2b5f5ca">More...</a><br /></td></tr>
<tr class="separator:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9bbe0e3db3a8e9b7878acf20bc9f4c81">texture</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, size_type BaseLayer, size_type MaxLayer, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object by sharing an existing texture storage_type from another texture instance. <a href="#a9bbe0e3db3a8e9b7878acf20bc9f4c81">More...</a><br /></td></tr>
<tr class="separator:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3efa6c67e681cdb4630d99cbb355aa3d">texture</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object by sharing an existing texture storage_type from another texture instance. <a href="#a3efa6c67e681cdb4630d99cbb355aa3d">More...</a><br /></td></tr>
<tr class="separator:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Cube map texture. </p>
<p>Definition at line <a class="el" href="a00068_source.html#l00011">11</a> of file <a class="el" href="a00068_source.html">texture_cube.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

BIN
external/gli/doc/api/a00018.png vendored 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

326
external/gli/doc/api/a00019.html vendored 100644
View File

@ -0,0 +1,326 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: texture_cube_array Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00074.html">gli</a></li><li class="navelem"><a class="el" href="a00019.html">texture_cube_array</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00097.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">texture_cube_array Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Cube map array texture.
<a href="a00019.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for texture_cube_array:</div>
<div class="dyncontent">
<div class="center">
<img src="a00019.png" usemap="#texture_cube_array_map" alt=""/>
<map id="texture_cube_array_map" name="texture_cube_array_map">
<area href="a00012.html" title="Genetic texture class. It can support any target. " alt="texture" shape="rect" coords="0,0,123,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa9122bf87edd23bd731bd9eaf072e757"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9122bf87edd23bd731bd9eaf072e757"></a>
extent_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00019.html#aa9122bf87edd23bd731bd9eaf072e757">extent</a> (size_type Level=0) const </td></tr>
<tr class="memdesc:aa9122bf87edd23bd731bd9eaf072e757"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the dimensions of a texture instance: width and height where both should be equal. <br /></td></tr>
<tr class="separator:aa9122bf87edd23bd731bd9eaf072e757"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a643d8893b84d50b7a3c7fc53b218da8a"><td class="memTemplParams" colspan="2"><a class="anchor" id="a643d8893b84d50b7a3c7fc53b218da8a"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a643d8893b84d50b7a3c7fc53b218da8a"><td class="memTemplItemLeft" align="right" valign="top">gen_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00019.html#a643d8893b84d50b7a3c7fc53b218da8a">load</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:a643d8893b84d50b7a3c7fc53b218da8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a643d8893b84d50b7a3c7fc53b218da8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45e21473e5c5cd2ad7c2a7f206e4f422"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a45e21473e5c5cd2ad7c2a7f206e4f422"></a>
<a class="el" href="a00018.html">texture_cube</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00019.html#a45e21473e5c5cd2ad7c2a7f206e4f422">operator[]</a> (size_type Layer) const </td></tr>
<tr class="memdesc:a45e21473e5c5cd2ad7c2a7f206e4f422"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a view of the texture identified by Layer in the texture array. <br /></td></tr>
<tr class="separator:a45e21473e5c5cd2ad7c2a7f206e4f422"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a290419a437522cfe1981880fbfd9f810"><td class="memTemplParams" colspan="2"><a class="anchor" id="a290419a437522cfe1981880fbfd9f810"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a290419a437522cfe1981880fbfd9f810"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00019.html#a290419a437522cfe1981880fbfd9f810">store</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Face, size_type Level, gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a290419a437522cfe1981880fbfd9f810"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel to a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a290419a437522cfe1981880fbfd9f810"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d01124ad792578ed65d53ce9edcf8d2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1d01124ad792578ed65d53ce9edcf8d2"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00019.html#a1d01124ad792578ed65d53ce9edcf8d2">texture_cube_array</a> ()</td></tr>
<tr class="memdesc:a1d01124ad792578ed65d53ce9edcf8d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty texture cube array. <br /></td></tr>
<tr class="separator:a1d01124ad792578ed65d53ce9edcf8d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8976ac2bbe90e83d4cbcaf13ab9c6c24"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8976ac2bbe90e83d4cbcaf13ab9c6c24"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00019.html#a8976ac2bbe90e83d4cbcaf13ab9c6c24">texture_cube_array</a> (<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, size_type Layers, size_type Levels, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a8976ac2bbe90e83d4cbcaf13ab9c6c24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00019.html" title="Cube map array texture. ">texture_cube_array</a> and allocate a new storage_linear. <br /></td></tr>
<tr class="separator:a8976ac2bbe90e83d4cbcaf13ab9c6c24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb31cf12125c2b47e1e5b7b33298d778"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adb31cf12125c2b47e1e5b7b33298d778"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00019.html#adb31cf12125c2b47e1e5b7b33298d778">texture_cube_array</a> (<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, size_type Layers, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:adb31cf12125c2b47e1e5b7b33298d778"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00019.html" title="Cube map array texture. ">texture_cube_array</a> and allocate a new storage_linear with a complete mipmap chain. <br /></td></tr>
<tr class="separator:adb31cf12125c2b47e1e5b7b33298d778"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31b2f9e102c14d2b0155a8335f5bb0ed"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a31b2f9e102c14d2b0155a8335f5bb0ed"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00019.html#a31b2f9e102c14d2b0155a8335f5bb0ed">texture_cube_array</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture)</td></tr>
<tr class="memdesc:a31b2f9e102c14d2b0155a8335f5bb0ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="a00019.html" title="Cube map array texture. ">texture_cube_array</a> view with an existing storage_linear. <br /></td></tr>
<tr class="separator:a31b2f9e102c14d2b0155a8335f5bb0ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37de022ab21b2c19cb39985db4121dda"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a37de022ab21b2c19cb39985db4121dda"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00019.html#a37de022ab21b2c19cb39985db4121dda">texture_cube_array</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, size_type BaseLayer, size_type MaxLayer, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a37de022ab21b2c19cb39985db4121dda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference a subset of an exiting storage_linear constructor. <br /></td></tr>
<tr class="separator:a37de022ab21b2c19cb39985db4121dda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaee6b8094978019a9985d8fee52ccd7f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaee6b8094978019a9985d8fee52ccd7f"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00019.html#aaee6b8094978019a9985d8fee52ccd7f">texture_cube_array</a> (<a class="el" href="a00019.html">texture_cube_array</a> const &amp;Texture, size_type BaseLayer, size_type MaxLayer, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel)</td></tr>
<tr class="memdesc:aaee6b8094978019a9985d8fee52ccd7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture view, reference a subset of an exiting <a class="el" href="a00019.html" title="Cube map array texture. ">texture_cube_array</a> instance. <br /></td></tr>
<tr class="separator:aaee6b8094978019a9985d8fee52ccd7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_a00012"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_a00012')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="a00012.html">texture</a></td></tr>
<tr class="memitem:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7c1f35cf657c7bbe9eae2b39e44f728"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ae7c1f35cf657c7bbe9eae2b39e44f728">base_face</a> () const </td></tr>
<tr class="memdesc:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base face of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the faces. <br /></td></tr>
<tr class="separator:ae7c1f35cf657c7bbe9eae2b39e44f728 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1aeb020d8f82035e607b209c3841dee2"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a1aeb020d8f82035e607b209c3841dee2">base_layer</a> () const </td></tr>
<tr class="memdesc:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base layer of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the layers. <br /></td></tr>
<tr class="separator:a1aeb020d8f82035e607b209c3841dee2 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01c07293e367b293736943e92f6a9e98"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a01c07293e367b293736943e92f6a9e98">base_level</a> () const </td></tr>
<tr class="memdesc:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the base level of the texture instance, effectively a memory offset in the actual texture storage_type to identify where to start reading the levels. <br /></td></tr>
<tr class="separator:a01c07293e367b293736943e92f6a9e98 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8bb3912a3ce86b15842e79d0b421204"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a> ()</td></tr>
<tr class="memdesc:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the entire texture storage_linear with zeros. <br /></td></tr>
<tr class="separator:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a5430e0073bc8a24264b7133f25f0edec">clear</a> (gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the entire texture storage_linear with Texel which type must match the texture storage_linear format block size If the type of gen_type doesn't match the type of the texture format, no conversion is performed and the data will be reinterpreted as if is was of the texture format. <a href="#a5430e0073bc8a24264b7133f25f0edec">More...</a><br /></td></tr>
<tr class="separator:a5430e0073bc8a24264b7133f25f0edec inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a54710883dcdf8a8f8f9bfc13e9dd5398"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a54710883dcdf8a8f8f9bfc13e9dd5398">clear</a> (size_type Layer, size_type Face, size_type Level, gen_type const &amp;BlockData)</td></tr>
<tr class="memdesc:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a specific image of a texture. <br /></td></tr>
<tr class="separator:a54710883dcdf8a8f8f9bfc13e9dd5398 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1df5aef4908916286c693427ae042eca"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a1df5aef4908916286c693427ae042eca">clear</a> (size_type Layer, size_type Face, size_type Level, extent_type const &amp;TexelOffset, extent_type const &amp;TexelExtent, gen_type const &amp;BlockData)</td></tr>
<tr class="memdesc:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a subset of a specific image of a texture. <br /></td></tr>
<tr class="separator:a1df5aef4908916286c693427ae042eca inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade92aae99ac3524a83809acdfd8c0715"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ade92aae99ac3524a83809acdfd8c0715">copy</a> (<a class="el" href="a00012.html">texture</a> const &amp;TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, size_t LayerDst, size_t FaceDst, size_t LevelDst)</td></tr>
<tr class="memdesc:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a specific image of a texture. <br /></td></tr>
<tr class="separator:ade92aae99ac3524a83809acdfd8c0715 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace50b0c766f3c82847eda49459eec7e0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ace50b0c766f3c82847eda49459eec7e0">copy</a> (<a class="el" href="a00012.html">texture</a> const &amp;TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, extent_type const &amp;OffsetSrc, size_t LayerDst, size_t FaceDst, size_t LevelDst, extent_type const &amp;OffsetDst, extent_type const &amp;Extent)</td></tr>
<tr class="memdesc:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a subset of a specific image of a texture. <br /></td></tr>
<tr class="separator:ace50b0c766f3c82847eda49459eec7e0 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f2c67dc864c6b6e705710853b5568ef"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3f2c67dc864c6b6e705710853b5568ef">data</a> ()</td></tr>
<tr class="memdesc:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:a3f2c67dc864c6b6e705710853b5568ef inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="aecfb33a652ea3f984735a031e4af697f"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#aecfb33a652ea3f984735a031e4af697f">data</a> ()</td></tr>
<tr class="memdesc:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:aecfb33a652ea3f984735a031e4af697f inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec236abf7eac8ff4eec54eda033b9288"></a>
void const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aec236abf7eac8ff4eec54eda033b9288">data</a> () const </td></tr>
<tr class="memdesc:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:aec236abf7eac8ff4eec54eda033b9288 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a8c538fecdc895b20bbd61890bffe0fdb"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type const *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a8c538fecdc895b20bbd61890bffe0fdb">data</a> () const </td></tr>
<tr class="memdesc:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a8c538fecdc895b20bbd61890bffe0fdb inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a76d02b884284dee754400f17bb7f5053"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a76d02b884284dee754400f17bb7f5053">data</a> (size_type Layer, size_type Face, size_type Level)</td></tr>
<tr class="memdesc:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:a76d02b884284dee754400f17bb7f5053 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad0d21d1d0e5888e0d546dc585d30249"></a>
void const *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aad0d21d1d0e5888e0d546dc585d30249">data</a> (size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the beginning of the texture instance data. <br /></td></tr>
<tr class="separator:aad0d21d1d0e5888e0d546dc585d30249 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a42214ff33bec0fa5dd52c2b0df7dcdbe"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a42214ff33bec0fa5dd52c2b0df7dcdbe">data</a> (size_type Layer, size_type Face, size_type Level)</td></tr>
<tr class="memdesc:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a42214ff33bec0fa5dd52c2b0df7dcdbe inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a272d7f02634851f003d81a25407ba782"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type const *const&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a272d7f02634851f003d81a25407ba782">data</a> (size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer of type genType which size must match the texture format block size. <br /></td></tr>
<tr class="separator:a272d7f02634851f003d81a25407ba782 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac6e61de369e994009e36f344f99c15ad"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ac6e61de369e994009e36f344f99c15ad">empty</a> () const </td></tr>
<tr class="memdesc:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether the texture instance is empty, no storage_type or description have been assigned to the instance. <br /></td></tr>
<tr class="separator:ac6e61de369e994009e36f344f99c15ad inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9122bf87edd23bd731bd9eaf072e757"></a>
extent_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aa9122bf87edd23bd731bd9eaf072e757">extent</a> (size_type Level=0) const </td></tr>
<tr class="memdesc:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the size of a texture instance: width, height and depth. <br /></td></tr>
<tr class="separator:aa9122bf87edd23bd731bd9eaf072e757 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3914cdf138e9267662ac7147fe71d644"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3914cdf138e9267662ac7147fe71d644">faces</a> () const </td></tr>
<tr class="memdesc:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#aa18daf8e8534d4cefabf3b7dfd43a6f3" title="Return the max face of the texture instance, effectively a memory offset to the beginning of the last...">max_face()</a> - <a class="el" href="a00012.html#ae7c1f35cf657c7bbe9eae2b39e44f728" title="Return the base face of the texture instance, effectively a memory offset in the actual texture stora...">base_face()</a> + 1. <br /></td></tr>
<tr class="separator:a3914cdf138e9267662ac7147fe71d644 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad94928ca00873970455c1fb2d3c03fd8"></a>
<a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ad94928ca00873970455c1fb2d3c03fd8">format</a> () const </td></tr>
<tr class="memdesc:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the texture instance format. <br /></td></tr>
<tr class="separator:ad94928ca00873970455c1fb2d3c03fd8 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac4e6a627c907856620b7eb161c9b85d"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aac4e6a627c907856620b7eb161c9b85d">layers</a> () const </td></tr>
<tr class="memdesc:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#af8ae0072dcfb583fcd278650b3f55ec6" title="Return the max layer of the texture instance, effectively a memory offset to the beginning of the las...">max_layer()</a> - <a class="el" href="a00012.html#a1aeb020d8f82035e607b209c3841dee2" title="Return the base layer of the texture instance, effectively a memory offset in the actual texture stor...">base_layer()</a> + 1. <br /></td></tr>
<tr class="separator:aac4e6a627c907856620b7eb161c9b85d inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9b85eb415046f5a31b2d9eff8cefc24c"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9b85eb415046f5a31b2d9eff8cefc24c">levels</a> () const </td></tr>
<tr class="memdesc:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="a00012.html#ae174e356683cee9bf9d3e11df4d6f78a" title="Return the max level of the texture instance, effectively a memory offset to the beginning of the las...">max_level()</a> - <a class="el" href="a00012.html#a01c07293e367b293736943e92f6a9e98" title="Return the base level of the texture instance, effectively a memory offset in the actual texture stor...">base_level()</a> + 1. <br /></td></tr>
<tr class="separator:a9b85eb415046f5a31b2d9eff8cefc24c inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a643d8893b84d50b7a3c7fc53b218da8a"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">gen_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a643d8893b84d50b7a3c7fc53b218da8a">load</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Face, size_type Level) const </td></tr>
<tr class="memdesc:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a texel from a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a643d8893b84d50b7a3c7fc53b218da8a inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa18daf8e8534d4cefabf3b7dfd43a6f3"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#aa18daf8e8534d4cefabf3b7dfd43a6f3">max_face</a> () const </td></tr>
<tr class="memdesc:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max face of the texture instance, effectively a memory offset to the beginning of the last face in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:aa18daf8e8534d4cefabf3b7dfd43a6f3 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8ae0072dcfb583fcd278650b3f55ec6"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#af8ae0072dcfb583fcd278650b3f55ec6">max_layer</a> () const </td></tr>
<tr class="memdesc:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max layer of the texture instance, effectively a memory offset to the beginning of the last layer in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:af8ae0072dcfb583fcd278650b3f55ec6 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae174e356683cee9bf9d3e11df4d6f78a"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ae174e356683cee9bf9d3e11df4d6f78a">max_level</a> () const </td></tr>
<tr class="memdesc:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max level of the texture instance, effectively a memory offset to the beginning of the last level in the actual texture storage_type that the texture instance can access. <br /></td></tr>
<tr class="separator:ae174e356683cee9bf9d3e11df4d6f78a inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a503ab01f6c0142145d3434f6924714e7"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a503ab01f6c0142145d3434f6924714e7">size</a> () const </td></tr>
<tr class="memdesc:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a texture instance storage_type in bytes. <br /></td></tr>
<tr class="separator:a503ab01f6c0142145d3434f6924714e7 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
<tr class="memitem:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">size_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a24789b8cce4dcbe8e0d3a47b68447aba">size</a> () const </td></tr>
<tr class="memdesc:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of blocks contained in a texture instance storage_type. <a href="#a24789b8cce4dcbe8e0d3a47b68447aba">More...</a><br /></td></tr>
<tr class="separator:a24789b8cce4dcbe8e0d3a47b68447aba inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a46f11d7b73797c3e4b9a6da00f505fd8"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a46f11d7b73797c3e4b9a6da00f505fd8">size</a> (size_type Level) const </td></tr>
<tr class="memdesc:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a specific level identified by Level. <br /></td></tr>
<tr class="separator:a46f11d7b73797c3e4b9a6da00f505fd8 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memTemplParams" colspan="2">template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">size_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a665df3b51266310cd164cd5aa9c6e80e">size</a> (size_type Level) const </td></tr>
<tr class="memdesc:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory size of a specific level identified by Level. <a href="#a665df3b51266310cd164cd5aa9c6e80e">More...</a><br /></td></tr>
<tr class="separator:a665df3b51266310cd164cd5aa9c6e80e inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="a290419a437522cfe1981880fbfd9f810"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#a290419a437522cfe1981880fbfd9f810">store</a> (extent_type const &amp;TexelCoord, size_type Layer, size_type Face, size_type Level, gen_type const &amp;Texel)</td></tr>
<tr class="memdesc:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a texel to a texture. The texture format must be uncompressed. <br /></td></tr>
<tr class="separator:a290419a437522cfe1981880fbfd9f810 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memTemplParams" colspan="2"><a class="anchor" id="aa2c92d09106b13d3d20dd0909ada8a68"></a>
template&lt;typename gen_type &gt; </td></tr>
<tr class="memitem:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00012.html#aa2c92d09106b13d3d20dd0909ada8a68">swizzle</a> (gli::swizzles const &amp;Swizzles)</td></tr>
<tr class="memdesc:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reorder the component in texture memory. <br /></td></tr>
<tr class="separator:aa2c92d09106b13d3d20dd0909ada8a68 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59d3d7946e94bc294444c5f55db70c21"></a>
<a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a59d3d7946e94bc294444c5f55db70c21">target</a> () const </td></tr>
<tr class="memdesc:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the target of a texture instance. <br /></td></tr>
<tr class="separator:a59d3d7946e94bc294444c5f55db70c21 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9921e1ac4df78bce54d328affd59da28"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9921e1ac4df78bce54d328affd59da28">texture</a> ()</td></tr>
<tr class="memdesc:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty texture instance. <br /></td></tr>
<tr class="separator:a9921e1ac4df78bce54d328affd59da28 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a4ca26840db935a649290350da2b5f5ca">texture</a> (<a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, extent_type const &amp;Extent, size_type Layers, size_type Faces, size_type Levels, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object and allocate a texture storage for it. <a href="#a4ca26840db935a649290350da2b5f5ca">More...</a><br /></td></tr>
<tr class="separator:a4ca26840db935a649290350da2b5f5ca inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9bbe0e3db3a8e9b7878acf20bc9f4c81">texture</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, size_type BaseLayer, size_type MaxLayer, size_type BaseFace, size_type MaxFace, size_type BaseLevel, size_type MaxLevel, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object by sharing an existing texture storage_type from another texture instance. <a href="#a9bbe0e3db3a8e9b7878acf20bc9f4c81">More...</a><br /></td></tr>
<tr class="separator:a9bbe0e3db3a8e9b7878acf20bc9f4c81 inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a3efa6c67e681cdb4630d99cbb355aa3d">texture</a> (<a class="el" href="a00012.html">texture</a> const &amp;Texture, <a class="el" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target_type</a> Target, <a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a> Format, swizzles_type const &amp;Swizzles=swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA))</td></tr>
<tr class="memdesc:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a texture object by sharing an existing texture storage_type from another texture instance. <a href="#a3efa6c67e681cdb4630d99cbb355aa3d">More...</a><br /></td></tr>
<tr class="separator:a3efa6c67e681cdb4630d99cbb355aa3d inherit pub_methods_a00012"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Cube map array texture. </p>
<p>Definition at line <a class="el" href="a00069_source.html#l00011">11</a> of file <a class="el" href="a00069_source.html">texture_cube_array.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

BIN
external/gli/doc/api/a00019.png vendored 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 496 B

138
external/gli/doc/api/a00020.html vendored 100644
View File

@ -0,0 +1,138 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: clear.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">clear.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Include to copy textures or a subset of either textures.
<a href="#details">More...</a></p>
<p><a href="a00020_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:a00074"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">gli</a></td></tr>
<tr class="memdesc:a00074"><td class="mdescLeft">&#160;</td><td class="mdescRight">Namespace where all the classes and functions provided by GLI are exposed. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:af4adb12c1d85d1813e9090f51a40beef"><td class="memTemplParams" colspan="2"><a class="anchor" id="af4adb12c1d85d1813e9090f51a40beef"></a>
template&lt;typename texture_type &gt; </td></tr>
<tr class="memitem:af4adb12c1d85d1813e9090f51a40beef"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00074.html#af4adb12c1d85d1813e9090f51a40beef">clear</a> (texture_type &amp;Texture)</td></tr>
<tr class="memdesc:af4adb12c1d85d1813e9090f51a40beef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a complete texture. <br /></td></tr>
<tr class="separator:af4adb12c1d85d1813e9090f51a40beef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac47a6798de780ac78bc5ad50d10a19fa"><td class="memTemplParams" colspan="2"><a class="anchor" id="ac47a6798de780ac78bc5ad50d10a19fa"></a>
template&lt;typename texture_type , typename gen_type &gt; </td></tr>
<tr class="memitem:ac47a6798de780ac78bc5ad50d10a19fa"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00074.html#ac47a6798de780ac78bc5ad50d10a19fa">clear</a> (texture_type &amp;Texture, gen_type const &amp;BlockData)</td></tr>
<tr class="memdesc:ac47a6798de780ac78bc5ad50d10a19fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a complete texture. <br /></td></tr>
<tr class="separator:ac47a6798de780ac78bc5ad50d10a19fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02577cb30a63914796a13e8ea6af9499"><td class="memTemplParams" colspan="2"><a class="anchor" id="a02577cb30a63914796a13e8ea6af9499"></a>
template&lt;typename texture_type , typename gen_type &gt; </td></tr>
<tr class="memitem:a02577cb30a63914796a13e8ea6af9499"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00074.html#a02577cb30a63914796a13e8ea6af9499">clear</a> (texture_type &amp;Texture, size_t Layer, size_t Face, size_t Level, gen_type const &amp;BlockData)</td></tr>
<tr class="memdesc:a02577cb30a63914796a13e8ea6af9499"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a specific image of a texture. <br /></td></tr>
<tr class="separator:a02577cb30a63914796a13e8ea6af9499"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Include to copy textures or a subset of either textures. </p>
<p>These operations are performed without memory allocations. </p>
<p>Definition in file <a class="el" href="a00020_source.html">clear.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,144 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: clear.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">clear.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00020.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="a00074.html"> 6</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;{</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_type&gt;</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keywordtype">void</span> <a class="code" href="a00074.html#af4adb12c1d85d1813e9090f51a40beef">clear</a>(texture_type&amp; Texture);</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> gen_type&gt;</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keywordtype">void</span> <a class="code" href="a00074.html#af4adb12c1d85d1813e9090f51a40beef">clear</a>(texture_type&amp; Texture, gen_type <span class="keyword">const</span>&amp; BlockData);</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> gen_type&gt;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordtype">void</span> <a class="code" href="a00074.html#af4adb12c1d85d1813e9090f51a40beef">clear</a>(texture_type&amp; Texture, <span class="keywordtype">size_t</span> Layer, <span class="keywordtype">size_t</span> Face, <span class="keywordtype">size_t</span> Level, gen_type <span class="keyword">const</span>&amp; BlockData);</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="comment">// Clear an entire level of a texture</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> gen_type&gt;</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">void</span> clear_level(texture_type&amp; Texture, <span class="keywordtype">size_t</span> BaseLevel, gen_type <span class="keyword">const</span>&amp; BlockData);</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="comment">// Clear multiple levels of a texture</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> gen_type&gt;</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordtype">void</span> clear_level(texture_type&amp; Texture, <span class="keywordtype">size_t</span> BaseLevel, <span class="keywordtype">size_t</span> LevelCount, gen_type <span class="keyword">const</span>&amp; BlockData);</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="comment">// Clear an entire face of a texture</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> gen_type&gt;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">void</span> clear_face(texture_type&amp; Texture, <span class="keywordtype">size_t</span> BaseFace, gen_type <span class="keyword">const</span>&amp; BlockData);</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="comment">// Clear multiple faces of a texture</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> gen_type&gt;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">void</span> clear_face(texture_type&amp; Texture, <span class="keywordtype">size_t</span> BaseFace, <span class="keywordtype">size_t</span> FaceCount, gen_type <span class="keyword">const</span>&amp; BlockData);</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="comment">// Clear an entire layer of a texture</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> gen_type&gt;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">void</span> clear_layer(texture_type&amp; Texture, <span class="keywordtype">size_t</span> BaseLayer, gen_type <span class="keyword">const</span>&amp; BlockData);</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="comment">// Clear multiple layers of a texture</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> gen_type&gt;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">void</span> clear_layer(texture_type&amp; Texture, <span class="keywordtype">size_t</span> BaseLayer, <span class="keywordtype">size_t</span> LayerCount, gen_type <span class="keyword">const</span>&amp; BlockData);</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;./core/clear.inl&quot;</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
<div class="ttc" id="a00074_html_af4adb12c1d85d1813e9090f51a40beef"><div class="ttname"><a href="a00074.html#af4adb12c1d85d1813e9090f51a40beef">gli::clear</a></div><div class="ttdeci">void clear(texture_type &amp;Texture)</div><div class="ttdoc">Clear a complete texture. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,128 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: clear.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li><li class="navelem"><a class="el" href="dir_2c398834837487e57bd8c53ea39543b9.html">core</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">core/clear.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;convert_func.hpp&quot;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a>{</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">namespace </span>detail</div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;{</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> T, precision P&gt;</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keyword">struct </span><a class="code" href="a00074.html#af4adb12c1d85d1813e9090f51a40beef">clear</a></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; {</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> call(textureType &amp; Texture, <span class="keyword">typename</span> convert&lt;textureType, T, P&gt;::writeFunc Write, tvec4&lt;T, P&gt; <span class="keyword">const</span> &amp; Color)</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; {</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; GLI_ASSERT(Write);</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; texture <span class="keyword">const</span> ConvertTexel(Texture.target(), Texture.format(), texture::extent_type(1), 1, 1, 1);</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; textureType Texel(ConvertTexel);</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; Write(Texel, <span class="keyword">typename</span> textureType::extent_type(0), 0, 0, 0, Color);</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordtype">size_t</span> <span class="keyword">const</span> BlockSize(<a class="code" href="a00074.html#ae8ca05b97f1deac7bf5a50468868a449">block_size</a>(Texture.format()));</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> BlockIndex = 0, BlockCount = Texture.size() / BlockSize; BlockIndex &lt; BlockCount; ++BlockIndex)</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; memcpy(static_cast&lt;std::uint8_t*&gt;(Texture.data()) + BlockSize * BlockIndex, Texel.data(), BlockSize);</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; }</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; };</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
<div class="ttc" id="a00074_html_af4adb12c1d85d1813e9090f51a40beef"><div class="ttname"><a href="a00074.html#af4adb12c1d85d1813e9090f51a40beef">gli::clear</a></div><div class="ttdeci">void clear(texture_type &amp;Texture)</div><div class="ttdoc">Clear a complete texture. </div></div>
<div class="ttc" id="a00074_html_ae8ca05b97f1deac7bf5a50468868a449"><div class="ttname"><a href="a00074.html#ae8ca05b97f1deac7bf5a50468868a449">gli::block_size</a></div><div class="ttdeci">size_t block_size(format Format)</div><div class="ttdoc">Return the size in bytes of a block for a format. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

138
external/gli/doc/api/a00022.html vendored 100644
View File

@ -0,0 +1,138 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: comparison.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">comparison.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Include to use operators to compare whether two textures or images are equal.
<a href="#details">More...</a></p>
<p><a href="a00022_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:a00074"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">gli</a></td></tr>
<tr class="memdesc:a00074"><td class="mdescLeft">&#160;</td><td class="mdescRight">Namespace where all the classes and functions provided by GLI are exposed. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a7385e5b1d40db9fcbf2b5d645a25d751"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7385e5b1d40db9fcbf2b5d645a25d751"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a7385e5b1d40db9fcbf2b5d645a25d751">operator!=</a> (image const &amp;ImageA, image const &amp;ImageB)</td></tr>
<tr class="memdesc:a7385e5b1d40db9fcbf2b5d645a25d751"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare two images. Two images are equal when the date is the same. <br /></td></tr>
<tr class="separator:a7385e5b1d40db9fcbf2b5d645a25d751"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d872af1896fb8892f4f858b09deacbb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d872af1896fb8892f4f858b09deacbb"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a6d872af1896fb8892f4f858b09deacbb">operator!=</a> (texture const &amp;A, texture const &amp;B)</td></tr>
<tr class="memdesc:a6d872af1896fb8892f4f858b09deacbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare two textures. Two textures are the same when the data, the format and the targets are the same. <br /></td></tr>
<tr class="separator:a6d872af1896fb8892f4f858b09deacbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f067b84c6811d908d4544bc0dbb2365"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f067b84c6811d908d4544bc0dbb2365"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a0f067b84c6811d908d4544bc0dbb2365">operator==</a> (image const &amp;ImageA, image const &amp;ImageB)</td></tr>
<tr class="memdesc:a0f067b84c6811d908d4544bc0dbb2365"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare two images. Two images are equal when the date is the same. <br /></td></tr>
<tr class="separator:a0f067b84c6811d908d4544bc0dbb2365"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf88ca5cfb8bb81b8a610f86c8ff712f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf88ca5cfb8bb81b8a610f86c8ff712f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#aaf88ca5cfb8bb81b8a610f86c8ff712f">operator==</a> (texture const &amp;A, texture const &amp;B)</td></tr>
<tr class="memdesc:aaf88ca5cfb8bb81b8a610f86c8ff712f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare two textures. Two textures are the same when the data, the format and the targets are the same. <br /></td></tr>
<tr class="separator:aaf88ca5cfb8bb81b8a610f86c8ff712f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Include to use operators to compare whether two textures or images are equal. </p>
<p>Definition in file <a class="el" href="a00022_source.html">comparison.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,135 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: comparison.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">comparison.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00022.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00037.html">image.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00063.html">texture1d.hpp</a>&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00064.html">texture1d_array.hpp</a>&quot;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00065.html">texture2d.hpp</a>&quot;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00066.html">texture2d_array.hpp</a>&quot;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00067.html">texture3d.hpp</a>&quot;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00068.html">texture_cube.hpp</a>&quot;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00069.html">texture_cube_array.hpp</a>&quot;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;{</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00074.html#a0f067b84c6811d908d4544bc0dbb2365">operator==</a>(image <span class="keyword">const</span>&amp; ImageA, image <span class="keyword">const</span>&amp; ImageB);</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00074.html#a7385e5b1d40db9fcbf2b5d645a25d751">operator!=</a>(image <span class="keyword">const</span>&amp; ImageA, image <span class="keyword">const</span>&amp; ImageB);</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00074.html#a0f067b84c6811d908d4544bc0dbb2365">operator==</a>(texture <span class="keyword">const</span>&amp; A, texture <span class="keyword">const</span>&amp; B);</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00074.html#a7385e5b1d40db9fcbf2b5d645a25d751">operator!=</a>(texture <span class="keyword">const</span>&amp; A, texture <span class="keyword">const</span>&amp; B);</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;./core/comparison.inl&quot;</span></div>
<div class="ttc" id="a00074_html_a0f067b84c6811d908d4544bc0dbb2365"><div class="ttname"><a href="a00074.html#a0f067b84c6811d908d4544bc0dbb2365">gli::operator==</a></div><div class="ttdeci">bool operator==(image const &amp;ImageA, image const &amp;ImageB)</div><div class="ttdoc">Compare two images. Two images are equal when the date is the same. </div></div>
<div class="ttc" id="a00068_html"><div class="ttname"><a href="a00068.html">texture_cube.hpp</a></div><div class="ttdoc">Include to use cube map textures. </div></div>
<div class="ttc" id="a00064_html"><div class="ttname"><a href="a00064.html">texture1d_array.hpp</a></div><div class="ttdoc">Include to use 1d array textures. </div></div>
<div class="ttc" id="a00067_html"><div class="ttname"><a href="a00067.html">texture3d.hpp</a></div><div class="ttdoc">Include to use 3d textures. </div></div>
<div class="ttc" id="a00063_html"><div class="ttname"><a href="a00063.html">texture1d.hpp</a></div><div class="ttdoc">Include to use 1d textures. </div></div>
<div class="ttc" id="a00066_html"><div class="ttname"><a href="a00066.html">texture2d_array.hpp</a></div><div class="ttdoc">Include to use 2d array textures. </div></div>
<div class="ttc" id="a00037_html"><div class="ttname"><a href="a00037.html">image.hpp</a></div><div class="ttdoc">Include to use images, a representation of a single texture level. </div></div>
<div class="ttc" id="a00069_html"><div class="ttname"><a href="a00069.html">texture_cube_array.hpp</a></div><div class="ttdoc">Include to use cube map array textures. </div></div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
<div class="ttc" id="a00065_html"><div class="ttname"><a href="a00065.html">texture2d.hpp</a></div><div class="ttdoc">Include to use 2d textures. </div></div>
<div class="ttc" id="a00074_html_a7385e5b1d40db9fcbf2b5d645a25d751"><div class="ttname"><a href="a00074.html#a7385e5b1d40db9fcbf2b5d645a25d751">gli::operator!=</a></div><div class="ttdeci">bool operator!=(image const &amp;ImageA, image const &amp;ImageB)</div><div class="ttdoc">Compare two images. Two images are equal when the date is the same. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

127
external/gli/doc/api/a00023.html vendored 100644
View File

@ -0,0 +1,127 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: convert.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">convert.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Include to copy textures, images or a subset of either textures or an images.
<a href="#details">More...</a></p>
<p><a href="a00023_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:a00074"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">gli</a></td></tr>
<tr class="memdesc:a00074"><td class="mdescLeft">&#160;</td><td class="mdescRight">Namespace where all the classes and functions provided by GLI are exposed. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a57dd9012c7e2ba938d1db54a3a7869b5"><td class="memTemplParams" colspan="2">template&lt;typename texture_type &gt; </td></tr>
<tr class="memitem:a57dd9012c7e2ba938d1db54a3a7869b5"><td class="memTemplItemLeft" align="right" valign="top">texture_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00074.html#a57dd9012c7e2ba938d1db54a3a7869b5">convert</a> (texture_type const &amp;Texture, format Format)</td></tr>
<tr class="memdesc:a57dd9012c7e2ba938d1db54a3a7869b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert texture data to a new format. <a href="a00074.html#a57dd9012c7e2ba938d1db54a3a7869b5">More...</a><br /></td></tr>
<tr class="separator:a57dd9012c7e2ba938d1db54a3a7869b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Include to copy textures, images or a subset of either textures or an images. </p>
<p>These operations will cause memory allocations. </p>
<p>Definition in file <a class="el" href="a00023_source.html">convert.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,129 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: convert.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">convert.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00023.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00063.html">texture1d.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00064.html">texture1d_array.hpp</a>&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00065.html">texture2d.hpp</a>&quot;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00066.html">texture2d_array.hpp</a>&quot;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00067.html">texture3d.hpp</a>&quot;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00068.html">texture_cube.hpp</a>&quot;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00069.html">texture_cube_array.hpp</a>&quot;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;{</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_type&gt;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; texture_type <a class="code" href="a00074.html#a57dd9012c7e2ba938d1db54a3a7869b5">convert</a>(texture_type <span class="keyword">const</span>&amp; Texture, <a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format);</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;./core/convert.inl&quot;</span></div>
<div class="ttc" id="a00068_html"><div class="ttname"><a href="a00068.html">texture_cube.hpp</a></div><div class="ttdoc">Include to use cube map textures. </div></div>
<div class="ttc" id="a00074_html_a387137c43ed9616d39ba90e890d181eb"><div class="ttname"><a href="a00074.html#a387137c43ed9616d39ba90e890d181eb">gli::format</a></div><div class="ttdeci">format</div><div class="ttdoc">Texture data format. </div><div class="ttdef"><b>Definition:</b> <a href="a00033_source.html#l00012">format.hpp:12</a></div></div>
<div class="ttc" id="a00064_html"><div class="ttname"><a href="a00064.html">texture1d_array.hpp</a></div><div class="ttdoc">Include to use 1d array textures. </div></div>
<div class="ttc" id="a00067_html"><div class="ttname"><a href="a00067.html">texture3d.hpp</a></div><div class="ttdoc">Include to use 3d textures. </div></div>
<div class="ttc" id="a00063_html"><div class="ttname"><a href="a00063.html">texture1d.hpp</a></div><div class="ttdoc">Include to use 1d textures. </div></div>
<div class="ttc" id="a00066_html"><div class="ttname"><a href="a00066.html">texture2d_array.hpp</a></div><div class="ttdoc">Include to use 2d array textures. </div></div>
<div class="ttc" id="a00069_html"><div class="ttname"><a href="a00069.html">texture_cube_array.hpp</a></div><div class="ttdoc">Include to use cube map array textures. </div></div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
<div class="ttc" id="a00065_html"><div class="ttname"><a href="a00065.html">texture2d.hpp</a></div><div class="ttdoc">Include to use 2d textures. </div></div>
<div class="ttc" id="a00074_html_a57dd9012c7e2ba938d1db54a3a7869b5"><div class="ttname"><a href="a00074.html#a57dd9012c7e2ba938d1db54a3a7869b5">gli::convert</a></div><div class="ttdeci">texture_type convert(texture_type const &amp;Texture, format Format)</div><div class="ttdoc">Convert texture data to a new format. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,873 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: convert_func.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li><li class="navelem"><a class="el" href="dir_2c398834837487e57bd8c53ea39543b9.html">core</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">convert_func.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;../type.hpp&quot;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;../texture1d.hpp&quot;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;../texture1d_array.hpp&quot;</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;../texture2d.hpp&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;../texture2d_array.hpp&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;../texture3d.hpp&quot;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;../texture_cube.hpp&quot;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;../texture_cube_array.hpp&quot;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &lt;glm/gtc/packing.hpp&gt;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &lt;glm/gtc/color_space.hpp&gt;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a>{</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span>detail</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">enum</span> convertMode</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; {</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; CONVERT_MODE_DEFAULT,</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; CONVERT_MODE_CAST,</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; CONVERT_MODE_NORM,</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; CONVERT_MODE_SRGB,</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; CONVERT_MODE_HALF,</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; CONVERT_MODE_RGB9E5,</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; CONVERT_MODE_RG11B10F,</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; CONVERT_MODE_RGB10A2UNORM,</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; CONVERT_MODE_RGB10A2SNORM,</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; CONVERT_MODE_RGB10A2USCALE,</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; CONVERT_MODE_RGB10A2SSCALE,</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; CONVERT_MODE_RGB10A2UINT,</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; CONVERT_MODE_RGB10A2SINT,</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; CONVERT_MODE_44UNORM,</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; CONVERT_MODE_44SCALED,</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; CONVERT_MODE_4444UNORM,</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; CONVERT_MODE_4444SCALED,</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; CONVERT_MODE_565UNORM,</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; CONVERT_MODE_565SCALED,</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; CONVERT_MODE_5551UNORM,</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; CONVERT_MODE_5551SCALED,</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; CONVERT_MODE_332UNORM</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; };</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">struct </span>accessFunc</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {};</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">struct </span>accessFunc&lt;texture1d, genType&gt;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">static</span> genType <a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">load</a>(texture1d <span class="keyword">const</span> &amp; Texture, texture1d::extent_type <span class="keyword">const</span> &amp; TexelCoord, texture1d::size_type Layer, texture1d::size_type Face, texture1d::size_type Level)</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; GLI_ASSERT(Layer == 0 &amp;&amp; Face == 0);</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> Texture.load&lt;genType&gt;(TexelCoord, Level);</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> store(texture1d &amp; Texture, texture1d::extent_type <span class="keyword">const</span> &amp; TexelCoord, texture1d::size_type Layer, texture1d::size_type Face, texture1d::size_type Level, genType <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; {</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLI_ASSERT(Layer == 0 &amp;&amp; Face == 0);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; Texture.store&lt;genType&gt;(TexelCoord, Level, Texel);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; };</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">struct </span>accessFunc&lt;texture1d_array, genType&gt;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">static</span> genType <a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">load</a>(texture1d_array <span class="keyword">const</span>&amp; Texture, texture1d_array::extent_type <span class="keyword">const</span>&amp; TexelCoord, texture1d_array::size_type Layer, texture1d_array::size_type Face, texture1d_array::size_type Level)</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLI_ASSERT(Face == 0);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> Texture.load&lt;genType&gt;(TexelCoord, Layer, Level);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> store(texture1d_array&amp; Texture, texture1d_array::extent_type <span class="keyword">const</span>&amp; TexelCoord, texture1d_array::size_type Layer, texture1d_array::size_type Face, texture1d_array::size_type Level, genType <span class="keyword">const</span>&amp; Texel)</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; {</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLI_ASSERT(Face == 0);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; Texture.store&lt;genType&gt;(TexelCoord, Layer, Level, Texel);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; };</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">struct </span>accessFunc&lt;texture2d, genType&gt;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">static</span> genType <a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">load</a>(texture2d <span class="keyword">const</span> &amp; Texture, texture2d::extent_type <span class="keyword">const</span> &amp; TexelCoord, texture2d::size_type Layer, texture2d::size_type Face, texture2d::size_type Level)</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLI_ASSERT(Layer == 0 &amp;&amp; Face == 0);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">return</span> Texture.load&lt;genType&gt;(TexelCoord, Level);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> store(texture2d &amp; Texture, texture2d::extent_type <span class="keyword">const</span> &amp; TexelCoord, texture2d::size_type Layer, texture2d::size_type Face, texture2d::size_type Level, genType <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; {</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; GLI_ASSERT(Layer == 0 &amp;&amp; Face == 0);</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; Texture.store&lt;genType&gt;(TexelCoord, Level, Texel);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; };</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">struct </span>accessFunc&lt;texture2d_array, genType&gt;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">static</span> genType <a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">load</a>(texture2d_array <span class="keyword">const</span> &amp; Texture, texture2d_array::extent_type <span class="keyword">const</span> &amp; TexelCoord, texture2d_array::size_type Layer, texture2d_array::size_type Face, texture2d_array::size_type Level)</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; GLI_ASSERT(Face == 0);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> Texture.load&lt;genType&gt;(TexelCoord, Layer, Level);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> store(texture2d_array &amp; Texture, texture2d_array::extent_type <span class="keyword">const</span> &amp; TexelCoord, texture2d_array::size_type Layer, texture2d_array::size_type Face, texture2d_array::size_type Level, genType <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; {</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GLI_ASSERT(Face == 0);</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; Texture.store&lt;genType&gt;(TexelCoord, Layer, Level, Texel);</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; };</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">struct </span>accessFunc&lt;texture3d, genType&gt;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">static</span> genType <a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">load</a>(texture3d <span class="keyword">const</span> &amp; Texture, texture3d::extent_type <span class="keyword">const</span> &amp; TexelCoord, texture3d::size_type Layer, texture3d::size_type Face, texture3d::size_type Level)</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLI_ASSERT(Layer == 0 &amp;&amp; Face == 0);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> Texture.load&lt;genType&gt;(TexelCoord, Level);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> store(texture3d &amp; Texture, texture3d::extent_type <span class="keyword">const</span> &amp; TexelCoord, texture3d::size_type Layer, texture3d::size_type Face, texture3d::size_type Level, genType <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; GLI_ASSERT(Layer == 0 &amp;&amp; Face == 0);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; Texture.store&lt;genType&gt;(TexelCoord, Level, Texel);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; };</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">struct </span>accessFunc&lt;texture_cube, genType&gt;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">static</span> genType <a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">load</a>(texture_cube <span class="keyword">const</span>&amp; Texture, texture_cube::extent_type <span class="keyword">const</span>&amp; TexelCoord, texture_cube::size_type Layer, texture_cube::size_type Face, texture_cube::size_type Level)</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; GLI_ASSERT(Layer == 0);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> Texture.load&lt;genType&gt;(TexelCoord, Face, Level);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> store(texture_cube&amp; Texture, texture_cube::extent_type <span class="keyword">const</span>&amp; TexelCoord, texture_cube::size_type Layer, texture_cube::size_type Face, texture_cube::size_type Level, genType <span class="keyword">const</span>&amp; Texel)</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; {</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; GLI_ASSERT(Layer == 0);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; Texture.store&lt;genType&gt;(TexelCoord, Face, Level, Texel);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; };</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">struct </span>accessFunc&lt;texture_cube_array, genType&gt;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">static</span> genType <a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">load</a>(texture_cube_array <span class="keyword">const</span> &amp; Texture, texture_cube_array::extent_type <span class="keyword">const</span> &amp; TexelCoord, texture_cube_array::size_type Layer, texture_cube_array::size_type Face, texture_cube_array::size_type Level)</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> Texture.<a class="code" href="a00012.html#a643d8893b84d50b7a3c7fc53b218da8a">load</a>&lt;genType&gt;(TexelCoord, Layer, Face, Level);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> store(texture_cube_array &amp; Texture, texture_cube_array::extent_type <span class="keyword">const</span> &amp; TexelCoord, texture_cube_array::size_type Layer, texture_cube_array::size_type Face, texture_cube_array::size_type Level, genType <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; {</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; Texture.store&lt;genType&gt;(TexelCoord, Layer, Face, Level, Texel);</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; };</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">// convertFunc class</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> retType, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, convertMode mode = CONVERT_MODE_CAST, <span class="keywordtype">bool</span> isSamplerFloat = <span class="keyword">false</span>&gt;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">struct </span>convertFunc</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">typedef</span> accessFunc&lt;textureType, vecType&lt;T, P&gt; &gt; access;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">static</span> tvec4&lt;retType, P&gt; fetch(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level)</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; {</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span> make_vec4&lt;retType, P&gt;(vecType&lt;retType, P&gt;(<a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">access::load</a>(Texture, TexelCoord, Layer, Face, Level)));</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> write(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, tvec4&lt;retType, P&gt; <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; access::store(Texture, TexelCoord, Layer, Face, Level, vecType&lt;T, P&gt;(Texel));</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; };</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> retType, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, <span class="keywordtype">bool</span> isSamplerFloat&gt;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">struct </span>convertFunc&lt;textureType, retType, T, P, vecType, CONVERT_MODE_DEFAULT, isSamplerFloat&gt;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; {</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">static</span> tvec4&lt;retType, P&gt; fetch(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level)</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">return</span> tvec4&lt;retType, P&gt;(0, 0, 0, 1);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> write(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, tvec4&lt;retType, P&gt; <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; {}</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; };</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> retType, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">struct </span>convertFunc&lt;textureType, retType, T, P, vecType, CONVERT_MODE_NORM, true&gt;</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">typedef</span> accessFunc&lt;textureType, vecType&lt;T, P&gt; &gt; access;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">static</span> tvec4&lt;retType, P&gt; fetch(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level)</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_NORM requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> make_vec4&lt;retType, P&gt;(compNormalize&lt;retType&gt;(<a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">access::load</a>(Texture, TexelCoord, Layer, Face, Level)));</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> write(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, tvec4&lt;retType, P&gt; <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_NORM requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; access::store(Texture, TexelCoord, Layer, Face, Level, compScale&lt;T&gt;(vecType&lt;retType, P&gt;(Texel)));</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; };</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> retType, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">struct </span>convertFunc&lt;textureType, retType, T, P, vecType, CONVERT_MODE_SRGB, true&gt;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">typedef</span> accessFunc&lt;textureType, vecType&lt;T, P&gt; &gt; access;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">static</span> tvec4&lt;retType, P&gt; fetch(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level)</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; {</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_SRGB requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> make_vec4&lt;retType, P&gt;(convertSRGBToLinear(compNormalize&lt;retType&gt;(<a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">access::load</a>(Texture, TexelCoord, Layer, Face, Level))));</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> write(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, tvec4&lt;retType, P&gt; <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; {</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_SRGB requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; access::store(Texture, TexelCoord, Layer, Face, Level, gli::compScale&lt;T&gt;(convertLinearToSRGB(vecType&lt;retType, P&gt;(Texel))));</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; };</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> retType, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">struct </span>convertFunc&lt;textureType, retType, T, P, vecType, CONVERT_MODE_RGB9E5, true&gt;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keyword">typedef</span> accessFunc&lt;textureType, uint32&gt; access;</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">static</span> tvec4&lt;retType, P&gt; fetch(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level)</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_RGB9E5 requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> tvec4&lt;retType, P&gt;(unpackF3x9_E1x5(<a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">access::load</a>(Texture, TexelCoord, Layer, Face, Level)), <span class="keyword">static_cast&lt;</span>retType<span class="keyword">&gt;</span>(1));</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> write(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, tvec4&lt;retType, P&gt; <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; {</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_RGB9E5 requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; access::store(Texture, TexelCoord, Layer, Face, Level, packF3x9_E1x5(tvec3&lt;float, P&gt;(Texel)));</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; };</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> retType, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">struct </span>convertFunc&lt;textureType, retType, T, P, vecType, CONVERT_MODE_RG11B10F, true&gt;</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; {</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">typedef</span> accessFunc&lt;textureType, uint32&gt; access;</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">static</span> tvec4&lt;retType, P&gt; fetch(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level)</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; {</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_RG11B10F requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">return</span> tvec4&lt;retType, P&gt;(unpackF2x11_1x10(<a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">access::load</a>(Texture, TexelCoord, Layer, Face, Level)), <span class="keyword">static_cast&lt;</span>retType<span class="keyword">&gt;</span>(1));</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> write(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, tvec4&lt;retType, P&gt; <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_RG11B10F requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; access::store(Texture, TexelCoord, Layer, Face, Level, packF2x11_1x10(tvec3&lt;float, P&gt;(Texel)));</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; };</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> retType, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">struct </span>convertFunc&lt;textureType, retType, T, P, vecType, CONVERT_MODE_HALF, true&gt;</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">typedef</span> accessFunc&lt;textureType, vecType&lt;uint16, P&gt; &gt; access;</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">static</span> tvec4&lt;retType, P&gt; fetch(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level)</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; {</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_HALF requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> make_vec4&lt;retType, P&gt;(vecType&lt;retType, P&gt;(unpackHalf(<a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">access::load</a>(Texture, TexelCoord, Layer, Face, Level))));</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> write(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, tvec4&lt;retType, P&gt; <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; {</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_HALF requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; access::store(Texture, TexelCoord, Layer, Face, Level, packHalf(vecType&lt;float, P&gt;(Texel)));</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; };</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> retType, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keyword">struct </span>convertFunc&lt;textureType, retType, T, P, vecType, CONVERT_MODE_44UNORM, true&gt;</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; {</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">typedef</span> accessFunc&lt;textureType, uint8&gt; access;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">static</span> tvec4&lt;retType, P&gt; fetch(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level)</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_44UNORM requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">return</span> tvec4&lt;retType, P&gt;(tvec2&lt;retType, P&gt;(unpackUnorm2x4(<a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">access::load</a>(Texture, TexelCoord, Layer, Face, Level))), static_cast&lt;retType&gt;(0), <span class="keyword">static_cast&lt;</span>retType<span class="keyword">&gt;</span>(1));</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; }</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> write(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, tvec4&lt;retType, P&gt; <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; {</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_44UNORM requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; access::store(Texture, TexelCoord, Layer, Face, Level, packUnorm2x4(tvec2&lt;float, P&gt;(Texel)));</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; };</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> retType, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keyword">struct </span>convertFunc&lt;textureType, retType, T, P, vecType, CONVERT_MODE_4444UNORM, true&gt;</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; {</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">typedef</span> accessFunc&lt;textureType, uint16&gt; access;</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keyword">static</span> tvec4&lt;retType, P&gt; fetch(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level)</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; {</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_4444UNORM requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">return</span> tvec4&lt;retType, P&gt;(unpackUnorm4x4(<a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">access::load</a>(Texture, TexelCoord, Layer, Face, Level)));</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> write(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, tvec4&lt;retType, P&gt; <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; {</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_4444UNORM requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; access::store(Texture, TexelCoord, Layer, Face, Level, packUnorm4x4(tvec4&lt;float, P&gt;(Texel)));</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; };</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> retType, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">struct </span>convertFunc&lt;textureType, retType, T, P, vecType, CONVERT_MODE_565UNORM, true&gt;</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; {</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">typedef</span> accessFunc&lt;textureType, uint16&gt; access;</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keyword">static</span> tvec4&lt;retType, P&gt; fetch(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level)</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; {</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_565UNORM requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">return</span> tvec4&lt;retType, P&gt;(unpackUnorm1x5_1x6_1x5(<a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">access::load</a>(Texture, TexelCoord, Layer, Face, Level)), <span class="keyword">static_cast&lt;</span>retType<span class="keyword">&gt;</span>(1));</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> write(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, tvec4&lt;retType, P&gt; <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; {</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_565UNORM requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; access::store(Texture, TexelCoord, Layer, Face, Level, packUnorm1x5_1x6_1x5(tvec3&lt;float, P&gt;(Texel)));</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; }</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; };</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> retType, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keyword">struct </span>convertFunc&lt;textureType, retType, T, P, vecType, CONVERT_MODE_5551UNORM, true&gt;</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; {</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keyword">typedef</span> accessFunc&lt;textureType, uint16&gt; access;</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keyword">static</span> tvec4&lt;retType, P&gt; fetch(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level)</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; {</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_5551UNORM requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">return</span> tvec4&lt;retType, P&gt;(unpackUnorm3x5_1x1(<a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">access::load</a>(Texture, TexelCoord, Layer, Face, Level)));</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> write(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, tvec4&lt;retType, P&gt; <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; {</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_5551UNORM requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; access::store(Texture, TexelCoord, Layer, Face, Level, packUnorm3x5_1x1(tvec4&lt;float, P&gt;(Texel)));</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; };</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> retType, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keyword">struct </span>convertFunc&lt;textureType, retType, T, P, vecType, CONVERT_MODE_332UNORM, true&gt;</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; {</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keyword">typedef</span> accessFunc&lt;textureType, uint8&gt; access;</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keyword">static</span> tvec4&lt;retType, P&gt; fetch(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level)</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; {</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_332UNORM requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">return</span> tvec4&lt;retType, P&gt;(unpackUnorm2x3_1x2(<a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">access::load</a>(Texture, TexelCoord, Layer, Face, Level)), <span class="keyword">static_cast&lt;</span>retType<span class="keyword">&gt;</span>(1));</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; }</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> write(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, tvec4&lt;retType, P&gt; <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; {</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_332UNORM requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; access::store(Texture, TexelCoord, Layer, Face, Level, packUnorm2x3_1x2(tvec3&lt;float, P&gt;(Texel)));</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; }</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; };</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> retType, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keyword">struct </span>convertFunc&lt;textureType, retType, T, P, vecType, CONVERT_MODE_RGB10A2UNORM, true&gt;</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">typedef</span> accessFunc&lt;textureType, uint32&gt; access;</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keyword">static</span> tvec4&lt;retType, P&gt; fetch(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level)</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; {</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_RGB10A2UNORM requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">return</span> tvec4&lt;retType, P&gt;(unpackUnorm3x10_1x2(<a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">access::load</a>(Texture, TexelCoord, Layer, Face, Level)));</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; }</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> write(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, tvec4&lt;retType, P&gt; <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; {</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_RGB10A2UNORM requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; access::store(Texture, TexelCoord, Layer, Face, Level, packUnorm3x10_1x2(tvec4&lt;float, P&gt;(Texel)));</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; }</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; };</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> retType, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keyword">struct </span>convertFunc&lt;textureType, retType, T, P, vecType, CONVERT_MODE_RGB10A2SNORM, true&gt;</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; {</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keyword">typedef</span> accessFunc&lt;textureType, uint32&gt; access;</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">static</span> tvec4&lt;retType, P&gt; fetch(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level)</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; {</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_RGB10A2SNORM requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">return</span> tvec4&lt;retType, P&gt;(unpackSnorm3x10_1x2(<a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">access::load</a>(Texture, TexelCoord, Layer, Face, Level)));</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; }</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> write(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, tvec4&lt;retType, P&gt; <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; {</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_RGB10A2SNORM requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; access::store(Texture, TexelCoord, Layer, Face, Level, packSnorm3x10_1x2(Texel));</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; };</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> retType, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keyword">struct </span>convertFunc&lt;textureType, retType, T, P, vecType, CONVERT_MODE_RGB10A2USCALE, true&gt;</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; {</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keyword">typedef</span> accessFunc&lt;textureType, uint32&gt; access;</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keyword">static</span> tvec4&lt;retType, P&gt; fetch(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level)</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; {</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_RGB10A2USCALE requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; glm::detail::u10u10u10u2 Unpack;</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; Unpack.pack = <a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">access::load</a>(Texture, TexelCoord, Layer, Face, Level);</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">return</span> tvec4&lt;retType, P&gt;(Unpack.data.x, Unpack.data.y, Unpack.data.z, Unpack.data.w);</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; }</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> write(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, tvec4&lt;retType, P&gt; <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; {</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_RGB10A2USCALE requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; glm::detail::u10u10u10u2 Unpack;</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; Unpack.data.x = <span class="keyword">static_cast&lt;</span>uint<span class="keyword">&gt;</span>(Texel.x);</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; Unpack.data.y = <span class="keyword">static_cast&lt;</span>uint<span class="keyword">&gt;</span>(Texel.y);</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; Unpack.data.z = <span class="keyword">static_cast&lt;</span>uint<span class="keyword">&gt;</span>(Texel.z);</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; Unpack.data.w = <span class="keyword">static_cast&lt;</span>uint<span class="keyword">&gt;</span>(Texel.w);</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; access::store(Texture, TexelCoord, Layer, Face, Level, Unpack.pack);</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; }</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; };</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> retType, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keyword">struct </span>convertFunc&lt;textureType, retType, T, P, vecType, CONVERT_MODE_RGB10A2SSCALE, true&gt;</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; {</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keyword">typedef</span> accessFunc&lt;textureType, uint32&gt; access;</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keyword">static</span> tvec4&lt;retType, P&gt; fetch(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level)</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; {</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_RGB10A2SSCALE requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; glm::detail::i10i10i10i2 Unpack;</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; Unpack.pack = <a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">access::load</a>(Texture, TexelCoord, Layer, Face, Level);</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">return</span> tvec4&lt;retType, P&gt;(Unpack.data.x, Unpack.data.y, Unpack.data.z, Unpack.data.w);</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; }</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> write(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, tvec4&lt;retType, P&gt; <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; {</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; static_assert(std::numeric_limits&lt;retType&gt;::is_iec559, <span class="stringliteral">&quot;CONVERT_MODE_RGB10A2SSCALE requires a float sampler&quot;</span>);</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; glm::detail::i10i10i10i2 Unpack;</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; Unpack.data.x = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(Texel.x);</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; Unpack.data.y = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(Texel.y);</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; Unpack.data.z = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(Texel.z);</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; Unpack.data.w = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(Texel.w);</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; access::store(Texture, TexelCoord, Layer, Face, Level, Unpack.pack);</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; }</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; };</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> retType, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keyword">struct </span>convertFunc&lt;textureType, retType, T, P, vecType, CONVERT_MODE_RGB10A2UINT, false&gt;</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; {</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keyword">typedef</span> accessFunc&lt;textureType, uint32&gt; access;</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keyword">static</span> tvec4&lt;retType, P&gt; fetch(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level)</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; {</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; static_assert(<a class="code" href="a00074.html#a760a9e4d384a6573979a9c6ffb6c68c1">std::numeric_limits&lt;retType&gt;::is_integer</a>, <span class="stringliteral">&quot;CONVERT_MODE_RGB10A2UINT requires an integer sampler&quot;</span>);</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">return</span> tvec4&lt;retType, P&gt;(unpackU3x10_1x2(<a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">access::load</a>(Texture, TexelCoord, Layer, Face, Level)));</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; }</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> write(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, tvec4&lt;retType, P&gt; <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; {</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; static_assert(<a class="code" href="a00074.html#a760a9e4d384a6573979a9c6ffb6c68c1">std::numeric_limits&lt;retType&gt;::is_integer</a>, <span class="stringliteral">&quot;CONVERT_MODE_RGB10A2UINT requires an integer sampler&quot;</span>);</div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; access::store(Texture, TexelCoord, Layer, Face, Level, packU3x10_1x2(Texel));</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; }</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; };</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> retType, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keyword">struct </span>convertFunc&lt;textureType, retType, T, P, vecType, CONVERT_MODE_RGB10A2SINT, false&gt;</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; {</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keyword">typedef</span> accessFunc&lt;textureType, uint32&gt; access;</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keyword">static</span> tvec4&lt;retType, P&gt; fetch(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level)</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; {</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; static_assert(<a class="code" href="a00074.html#a760a9e4d384a6573979a9c6ffb6c68c1">std::numeric_limits&lt;retType&gt;::is_integer</a>, <span class="stringliteral">&quot;CONVERT_MODE_RGB10A2SINT requires an integer sampler&quot;</span>);</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">return</span> tvec4&lt;retType, P&gt;(unpackI3x10_1x2(<a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">access::load</a>(Texture, TexelCoord, Layer, Face, Level)));</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; }</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> write(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, tvec4&lt;retType, P&gt; <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; {</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; static_assert(<a class="code" href="a00074.html#a760a9e4d384a6573979a9c6ffb6c68c1">std::numeric_limits&lt;retType&gt;::is_integer</a>, <span class="stringliteral">&quot;CONVERT_MODE_RGB10A2SINT requires an integer sampler&quot;</span>);</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; access::store(Texture, TexelCoord, Layer, Face, Level, packI3x10_1x2(Texel));</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; }</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; };</div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> textureType, <span class="keyword">typename</span> samplerValType, precision P&gt;</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keyword">struct </span><a class="code" href="a00074.html#a57dd9012c7e2ba938d1db54a3a7869b5">convert</a></div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; {</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keyword">typedef</span> glm::tvec4&lt;samplerValType, P&gt;(*fetchFunc)(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level);</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keyword">typedef</span> void(*writeFunc)(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, glm::tvec4&lt;samplerValType, P&gt; <span class="keyword">const</span> &amp; Texel);</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType, convertMode mode&gt;</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keyword">struct </span>conv</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; {</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keyword">static</span> tvec4&lt;samplerValType, P&gt; fetch(textureType <span class="keyword">const</span> &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level)</div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; {</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">return</span> convertFunc&lt;textureType, samplerValType, T, P, vecType, mode, std::numeric_limits&lt;samplerValType&gt;::is_iec559&gt;::fetch(Texture, TexelCoord, Layer, Face, Level);</div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; }</div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;</div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> write(textureType &amp; Texture, <span class="keyword">typename</span> textureType::extent_type <span class="keyword">const</span> &amp; TexelCoord, <span class="keyword">typename</span> textureType::size_type Layer, <span class="keyword">typename</span> textureType::size_type Face, <span class="keyword">typename</span> textureType::size_type Level, tvec4&lt;samplerValType, P&gt; <span class="keyword">const</span> &amp; Texel)</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; {</div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; convertFunc&lt;textureType, samplerValType, T, P, vecType, mode, std::numeric_limits&lt;samplerValType&gt;::is_iec559&gt;::write(Texture, TexelCoord, Layer, Face, Level, Texel);</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; }</div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; };</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keyword">struct </span>func</div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; {</div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; fetchFunc Fetch;</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; writeFunc Write;</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; };</div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;</div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keyword">static</span> func call(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format)</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; {</div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keyword">static</span> func Table[] =</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; {</div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; {conv&lt;u8, tvec2, CONVERT_MODE_44UNORM&gt;::fetch, conv&lt;u8, tvec2, CONVERT_MODE_44UNORM&gt;::write}, <span class="comment">// FORMAT_RG4_UNORM</span></div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_4444UNORM&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_4444UNORM&gt;::write}, <span class="comment">// FORMAT_RGBA4_UNORM</span></div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_4444UNORM&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_4444UNORM&gt;::write}, <span class="comment">// FORMAT_BGRA4_UNORM</span></div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_565UNORM&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_565UNORM&gt;::write}, <span class="comment">// FORMAT_R5G6B5_UNORM</span></div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_565UNORM&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_565UNORM&gt;::write}, <span class="comment">// FORMAT_B5G6R5_UNORM</span></div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_5551UNORM&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_5551UNORM&gt;::write}, <span class="comment">// FORMAT_RGB5A1_UNORM</span></div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_5551UNORM&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_5551UNORM&gt;::write}, <span class="comment">// FORMAT_BGR5A1_UNORM</span></div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_5551UNORM&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_5551UNORM&gt;::write}, <span class="comment">// FORMAT_A1RGB5_UNORM</span></div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; {conv&lt;u8, tvec1, CONVERT_MODE_NORM&gt;::fetch, conv&lt;u8, tvec1, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_R8_UNORM</span></div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; {conv&lt;i8, tvec1, CONVERT_MODE_NORM&gt;::fetch, conv&lt;i8, tvec1, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_R8_SNORM</span></div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; {conv&lt;u8, tvec1, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u8, tvec1, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_R8_USCALED</span></div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; {conv&lt;i8, tvec1, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i8, tvec1, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_R8_SSCALED</span></div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; {conv&lt;u8, tvec1, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u8, tvec1, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_R8_UINT</span></div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; {conv&lt;i8, tvec1, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i8, tvec1, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_R8_SINT</span></div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; {conv&lt;u8, tvec1, CONVERT_MODE_SRGB&gt;::fetch, conv&lt;u8, tvec1, CONVERT_MODE_SRGB&gt;::write}, <span class="comment">// FORMAT_R8_SRGB</span></div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; {conv&lt;u8, tvec2, CONVERT_MODE_NORM&gt;::fetch, conv&lt;u8, tvec2, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_RG8_UNORM</span></div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; {conv&lt;i8, tvec2, CONVERT_MODE_NORM&gt;::fetch, conv&lt;i8, tvec2, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_RG8_SNORM</span></div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; {conv&lt;u8, tvec2, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u8, tvec2, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RG8_USCALED</span></div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; {conv&lt;i8, tvec2, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i8, tvec2, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RG8_SSCALED</span></div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; {conv&lt;u8, tvec2, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u8, tvec2, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RG8_UINT</span></div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; {conv&lt;i8, tvec2, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i8, tvec2, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RG8_SINT</span></div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; {conv&lt;u8, tvec2, CONVERT_MODE_SRGB&gt;::fetch, conv&lt;u8, tvec2, CONVERT_MODE_SRGB&gt;::write}, <span class="comment">// FORMAT_RG8_SRGB</span></div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;</div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_NORM&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_RGB8_UNORM</span></div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; {conv&lt;i8, tvec3, CONVERT_MODE_NORM&gt;::fetch, conv&lt;i8, tvec3, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_RGB8_SNORM</span></div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGB8_USCALED</span></div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; {conv&lt;i8, tvec3, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i8, tvec3, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGB8_SSCALED</span></div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGB8_UINT</span></div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; {conv&lt;i8, tvec3, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i8, tvec3, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGB8_SINT</span></div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_SRGB&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_SRGB&gt;::write}, <span class="comment">// FORMAT_RGB8_SRGB</span></div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;</div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_NORM&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_BGR8_UNORM</span></div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; {conv&lt;i8, tvec3, CONVERT_MODE_NORM&gt;::fetch, conv&lt;i8, tvec3, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_BGR8_SNORM</span></div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_BGR8_USCALED</span></div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; {conv&lt;i8, tvec3, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i8, tvec3, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_BGR8_SSCALED</span></div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; {conv&lt;u32, tvec3, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u32, tvec3, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_BGR8_UINT</span></div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; {conv&lt;i32, tvec3, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i32, tvec3, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_BGR8_SINT</span></div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_SRGB&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_SRGB&gt;::write}, <span class="comment">// FORMAT_BGR8_SRGB</span></div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;</div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_NORM&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_RGBA8_UNORM</span></div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; {conv&lt;i8, tvec4, CONVERT_MODE_NORM&gt;::fetch, conv&lt;i8, tvec4, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_RGBA8_SNORM</span></div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGBA8_USCALED</span></div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; {conv&lt;i8, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i8, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGBA8_SSCALED</span></div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGBA8_UINT</span></div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; {conv&lt;i8, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i8, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGBA8_SINT</span></div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_SRGB&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_SRGB&gt;::write}, <span class="comment">// FORMAT_RGBA8_SRGB</span></div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;</div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_NORM&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_BGRA8_UNORM</span></div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; {conv&lt;i8, tvec4, CONVERT_MODE_NORM&gt;::fetch, conv&lt;i8, tvec4, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_BGRA8_SNORM</span></div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_BGRA8_USCALED</span></div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; {conv&lt;i8, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i8, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_BGRA8_SSCALED</span></div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_BGRA8_UINT</span></div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; {conv&lt;i8, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i8, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_BGRA8_SINT</span></div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_SRGB&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_SRGB&gt;::write}, <span class="comment">// FORMAT_BGRA8_SRGB</span></div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;</div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_NORM&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_ABGR8_UNORM</span></div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; {conv&lt;i8, tvec4, CONVERT_MODE_NORM&gt;::fetch, conv&lt;i8, tvec4, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_ABGR8_SNORM</span></div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_ABGR8_USCALED</span></div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; {conv&lt;i8, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i8, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_ABGR8_SSCALED</span></div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_ABGR8_UINT</span></div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; {conv&lt;i8, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i8, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_ABGR8_SINT</span></div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_SRGB&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_SRGB&gt;::write}, <span class="comment">// FORMAT_ABGR8_SRGB</span></div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;</div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_RGB10A2UNORM&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_RGB10A2UNORM&gt;::write}, <span class="comment">// FORMAT_RGB10A2_UNORM</span></div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; {conv&lt;i8, tvec4, CONVERT_MODE_RGB10A2SNORM&gt;::fetch, conv&lt;i8, tvec4, CONVERT_MODE_RGB10A2SNORM&gt;::write}, <span class="comment">// FORMAT_RGB10A2_SNORM</span></div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_RGB10A2USCALE&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_RGB10A2USCALE&gt;::write}, <span class="comment">// FORMAT_RGB10A2_USCALED</span></div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; {conv&lt;i8, tvec4, CONVERT_MODE_RGB10A2SSCALE&gt;::fetch, conv&lt;i8, tvec4, CONVERT_MODE_RGB10A2SSCALE&gt;::write}, <span class="comment">// FORMAT_RGB10A2_SSCALED</span></div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_RGB10A2UINT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_RGB10A2UINT&gt;::write}, <span class="comment">// FORMAT_RGB10A2_UINT</span></div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; {conv&lt;i8, tvec4, CONVERT_MODE_RGB10A2SINT&gt;::fetch, conv&lt;i8, tvec4, CONVERT_MODE_RGB10A2SINT&gt;::write}, <span class="comment">// FORMAT_RGB10A2_SINT</span></div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;</div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_RGB10A2UNORM&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_RGB10A2UNORM&gt;::write}, <span class="comment">// FORMAT_BGR10A2_UNORM</span></div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; {conv&lt;i8, tvec4, CONVERT_MODE_RGB10A2SNORM&gt;::fetch, conv&lt;i8, tvec4, CONVERT_MODE_RGB10A2SNORM&gt;::write}, <span class="comment">// FORMAT_BGR10A2_SNORM</span></div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_RGB10A2USCALE&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_RGB10A2USCALE&gt;::write}, <span class="comment">// FORMAT_BGR10A2_USCALED</span></div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; {conv&lt;i8, tvec4, CONVERT_MODE_RGB10A2SSCALE&gt;::fetch, conv&lt;i8, tvec4, CONVERT_MODE_RGB10A2SSCALE&gt;::write}, <span class="comment">// FORMAT_BGR10A2_SSCALED</span></div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_RGB10A2UINT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_RGB10A2UINT&gt;::write}, <span class="comment">// FORMAT_BGR10A2_UINT</span></div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; {conv&lt;i8, tvec4, CONVERT_MODE_RGB10A2SINT&gt;::fetch, conv&lt;i8, tvec4, CONVERT_MODE_RGB10A2SINT&gt;::write}, <span class="comment">// FORMAT_BGR10A2_SINT</span></div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;</div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; {conv&lt;u16, tvec1, CONVERT_MODE_NORM&gt;::fetch, conv&lt;u16, tvec1, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_R16_UNORM_PACK16</span></div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; {conv&lt;i16, tvec1, CONVERT_MODE_NORM&gt;::fetch, conv&lt;i16, tvec1, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_R16_SNORM_PACK16</span></div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; {conv&lt;u16, tvec1, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u16, tvec1, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_R16_USCALED_PACK16</span></div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; {conv&lt;i16, tvec1, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i16, tvec1, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_R16_SSCALED_PACK16</span></div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; {conv&lt;u16, tvec1, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u16, tvec1, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_R16_UINT_PACK16</span></div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; {conv&lt;i16, tvec1, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i16, tvec1, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_R16_SINT_PACK16</span></div>
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; {conv&lt;u16, tvec1, CONVERT_MODE_HALF&gt;::fetch, conv&lt;u16, tvec1, CONVERT_MODE_HALF&gt;::write}, <span class="comment">// FORMAT_R16_SFLOAT_PACK16</span></div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;</div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; {conv&lt;u16, tvec2, CONVERT_MODE_NORM&gt;::fetch, conv&lt;u16, tvec2, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_RG16_UNORM_PACK16</span></div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; {conv&lt;i16, tvec2, CONVERT_MODE_NORM&gt;::fetch, conv&lt;i16, tvec2, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_RG16_SNORM_PACK16</span></div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; {conv&lt;u16, tvec2, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u16, tvec2, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RG16_USCALED_PACK16</span></div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; {conv&lt;i16, tvec2, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i16, tvec2, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RG16_SSCALED_PACK16</span></div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; {conv&lt;u16, tvec2, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u16, tvec2, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RG16_UINT_PACK16</span></div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; {conv&lt;i16, tvec2, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i16, tvec2, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RG16_SINT_PACK16</span></div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; {conv&lt;u16, tvec2, CONVERT_MODE_HALF&gt;::fetch, conv&lt;u16, tvec2, CONVERT_MODE_HALF&gt;::write}, <span class="comment">// FORMAT_RG16_SFLOAT_PACK16</span></div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; {conv&lt;u16, tvec3, CONVERT_MODE_NORM&gt;::fetch, conv&lt;u16, tvec3, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_RGB16_UNORM_PACK16</span></div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; {conv&lt;i16, tvec3, CONVERT_MODE_NORM&gt;::fetch, conv&lt;i16, tvec3, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_RGB16_SNORM_PACK16</span></div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; {conv&lt;u16, tvec3, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u16, tvec3, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGB16_USCALED_PACK16</span></div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; {conv&lt;i16, tvec3, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i16, tvec3, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGB16_SSCALED_PACK16</span></div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; {conv&lt;u16, tvec3, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u16, tvec3, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGB16_UINT_PACK16</span></div>
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; {conv&lt;i16, tvec3, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i16, tvec3, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGB16_SINT_PACK16</span></div>
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; {conv&lt;u16, tvec3, CONVERT_MODE_HALF&gt;::fetch, conv&lt;u16, tvec3, CONVERT_MODE_HALF&gt;::write}, <span class="comment">// FORMAT_RGB16_SFLOAT_PACK16</span></div>
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;</div>
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; {conv&lt;u16, tvec4, CONVERT_MODE_NORM&gt;::fetch, conv&lt;u16, tvec4, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_RGBA16_UNORM_PACK16</span></div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; {conv&lt;i16, tvec4, CONVERT_MODE_NORM&gt;::fetch, conv&lt;i16, tvec4, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_RGBA16_SNORM_PACK16</span></div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; {conv&lt;u16, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u16, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGBA16_USCALED_PACK16</span></div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; {conv&lt;i16, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i16, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGBA16_SSCALED_PACK16</span></div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; {conv&lt;u16, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u16, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGBA16_UINT_PACK16</span></div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; {conv&lt;i16, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i16, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGBA16_SINT_PACK16</span></div>
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; {conv&lt;u16, tvec4, CONVERT_MODE_HALF&gt;::fetch, conv&lt;u16, tvec4, CONVERT_MODE_HALF&gt;::write}, <span class="comment">// FORMAT_RGBA16_SFLOAT_PACK16</span></div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;</div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; {conv&lt;u32, tvec1, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u32, tvec1, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_R32_UINT_PACK32</span></div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; {conv&lt;i32, tvec1, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i32, tvec1, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_R32_SINT_PACK32</span></div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; {conv&lt;f32, tvec1, CONVERT_MODE_CAST&gt;::fetch, conv&lt;f32, tvec1, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_R32_SFLOAT_PACK32</span></div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;</div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; {conv&lt;u32, tvec2, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u32, tvec2, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RG32_UINT_PACK32</span></div>
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; {conv&lt;i32, tvec2, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i32, tvec2, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RG32_SINT_PACK32</span></div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; {conv&lt;f32, tvec2, CONVERT_MODE_CAST&gt;::fetch, conv&lt;f32, tvec2, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RG32_SFLOAT_PACK32</span></div>
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div>
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; {conv&lt;u32, tvec3, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u32, tvec3, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGB32_UINT_PACK32</span></div>
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; {conv&lt;i32, tvec3, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i32, tvec3, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGB32_SINT_PACK32</span></div>
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; {conv&lt;f32, tvec3, CONVERT_MODE_CAST&gt;::fetch, conv&lt;f32, tvec3, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGB32_SFLOAT_PACK32</span></div>
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;</div>
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; {conv&lt;u32, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u32, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGBA32_UINT_PACK32</span></div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; {conv&lt;i32, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i32, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGBA32_SINT_PACK32</span></div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; {conv&lt;f32, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;f32, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGBA32_SFLOAT_PACK32</span></div>
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;</div>
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; {conv&lt;u64, tvec1, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u64, tvec1, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_R64_UINT_PACK64</span></div>
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; {conv&lt;i64, tvec1, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i64, tvec1, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_R64_SINT_PACK64</span></div>
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; {conv&lt;f64, tvec1, CONVERT_MODE_CAST&gt;::fetch, conv&lt;f64, tvec1, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_R64_SFLOAT_PACK64</span></div>
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;</div>
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; {conv&lt;u64, tvec2, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u64, tvec2, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RG64_UINT_PACK64</span></div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; {conv&lt;i64, tvec2, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i64, tvec2, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RG64_SINT_PACK64</span></div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; {conv&lt;f64, tvec2, CONVERT_MODE_CAST&gt;::fetch, conv&lt;f64, tvec2, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RG64_SFLOAT_PACK64</span></div>
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;</div>
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; {conv&lt;u64, tvec3, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u64, tvec3, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGB64_UINT_PACK64</span></div>
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; {conv&lt;i64, tvec3, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i64, tvec3, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGB64_SINT_PACK64</span></div>
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; {conv&lt;f64, tvec3, CONVERT_MODE_CAST&gt;::fetch, conv&lt;f64, tvec3, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGB64_SFLOAT_PACK64</span></div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;</div>
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; {conv&lt;u64, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;u64, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGBA64_UINT_PACK64</span></div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; {conv&lt;i64, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;i64, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGBA64_SINT_PACK64</span></div>
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; {conv&lt;f64, tvec4, CONVERT_MODE_CAST&gt;::fetch, conv&lt;f64, tvec4, CONVERT_MODE_CAST&gt;::write}, <span class="comment">// FORMAT_RGBA64_SFLOAT_PACK64</span></div>
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div>
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; {conv&lt;u32, tvec1, CONVERT_MODE_RG11B10F&gt;::fetch, conv&lt;u32, tvec1, CONVERT_MODE_RG11B10F&gt;::write}, <span class="comment">// FORMAT_RG11B10_UFLOAT</span></div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; {conv&lt;u32, tvec1, CONVERT_MODE_RGB9E5&gt;::fetch, conv&lt;u32, tvec1, CONVERT_MODE_RGB9E5&gt;::write}, <span class="comment">// FORMAT_RGB9E5_UFLOAT</span></div>
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;</div>
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; {conv&lt;u16, tvec1, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u16, tvec1, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_D16_UNORM_PACK16</span></div>
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; {conv&lt;u32, tvec1, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u32, tvec1, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_D24_UNORM</span></div>
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; {conv&lt;float, tvec1, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;float, tvec1, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_D32_SFLOAT_PACK32</span></div>
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; {conv&lt;u8, tvec1, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec1, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_S8_UINT_PACK8</span></div>
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; {conv&lt;u16, tvec2, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u16, tvec2, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_D16_UNORM_S8_UINT_PACK32</span></div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; {conv&lt;u32, tvec2, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u32, tvec2, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_D24_UNORM_S8_UINT_PACK32</span></div>
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; {conv&lt;u32, tvec2, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u32, tvec2, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_D32_SFLOAT_S8_UINT_PACK64</span></div>
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;</div>
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGB_DXT1_UNORM_BLOCK8</span></div>
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGB_DXT1_SRGB_BLOCK8</span></div>
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_DXT1_UNORM_BLOCK8</span></div>
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_DXT1_SRGB_BLOCK8</span></div>
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_DXT3_UNORM_BLOCK16</span></div>
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_DXT3_SRGB_BLOCK16</span></div>
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_DXT5_UNORM_BLOCK16</span></div>
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_DXT5_SRGB_BLOCK16</span></div>
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; {conv&lt;u8, tvec1, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec1, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_R_ATI1N_UNORM_BLOCK8</span></div>
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; {conv&lt;u8, tvec1, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;i8, tvec1, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_R_ATI1N_SNORM_BLOCK8</span></div>
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; {conv&lt;u8, tvec2, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec2, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RG_ATI2N_UNORM_BLOCK16</span></div>
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; {conv&lt;u8, tvec2, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;i8, tvec2, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RG_ATI2N_SNORM_BLOCK16</span></div>
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; {conv&lt;float, tvec3, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;float, tvec3, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGB_BP_UFLOAT_BLOCK16</span></div>
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; {conv&lt;float, tvec3, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;float, tvec3, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGB_BP_SFLOAT_BLOCK16</span></div>
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_BP_UNORM_BLOCK16</span></div>
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_BP_SRGB_BLOCK16</span></div>
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;</div>
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGB_ETC2_UNORM_BLOCK8</span></div>
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGB_ETC2_SRGB_BLOCK8</span></div>
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_ETC2_A1_UNORM_BLOCK8</span></div>
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_ETC2_A1_SRGB_BLOCK8</span></div>
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_ETC2_UNORM_BLOCK16</span></div>
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_ETC2_SRGB_BLOCK16</span></div>
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; {conv&lt;u8, tvec1, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec1, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_R_EAC_UNORM_BLOCK8</span></div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; {conv&lt;u8, tvec1, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec1, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_R_EAC_SNORM_BLOCK8</span></div>
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; {conv&lt;u8, tvec2, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec2, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RG_EAC_UNORM_BLOCK16</span></div>
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; {conv&lt;u8, tvec2, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec2, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RG_EAC_SNORM_BLOCK16</span></div>
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;</div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_4x4_UNORM</span></div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_4x4_SRGB</span></div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_5x4_UNORM</span></div>
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_5x4_SRGB</span></div>
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_5x5_UNORM</span></div>
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_5x5_SRGB</span></div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_6x5_UNORM</span></div>
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_6x5_SRGB</span></div>
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_6x6_UNORM</span></div>
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_6x6_SRGB</span></div>
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_8x5_UNORM</span></div>
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_8x5_SRGB</span></div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_8x6_UNORM</span></div>
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_8x6_SRGB</span></div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_8x8_UNORM</span></div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_8x8_SRGB</span></div>
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_10x5_UNORM</span></div>
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_10x5_SRGB</span></div>
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_10x6_UNORM</span></div>
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_10x6_SRGB</span></div>
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_10x8_UNORM</span></div>
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_10x8_SRGB</span></div>
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_10x10_UNORM</span></div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_10x10_SRGB</span></div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_12x10_UNORM</span></div>
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_12x10_SRGB</span></div>
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_12x12_UNORM</span></div>
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_ASTC_12x12_SRGB</span></div>
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;</div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGB_PVRTC1_8X8_UNORM_BLOCK32</span></div>
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGB_PVRTC1_8X8_SRGB_BLOCK32</span></div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGB_PVRTC1_16X8_UNORM_BLOCK32</span></div>
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGB_PVRTC1_16X8_SRGB_BLOCK32</span></div>
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_PVRTC1_8X8_UNORM_BLOCK32</span></div>
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_PVRTC1_8X8_SRGB_BLOCK32</span></div>
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_PVRTC1_16X8_UNORM_BLOCK32</span></div>
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_PVRTC1_16X8_SRGB_BLOCK32</span></div>
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_PVRTC2_4X4_UNORM_BLOCK8</span></div>
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_PVRTC2_4X4_SRGB_BLOCK8</span></div>
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_PVRTC2_8X4_UNORM_BLOCK8</span></div>
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_PVRTC2_8X4_SRGB_BLOCK8</span></div>
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;</div>
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGB_ETC_UNORM_BLOCK8</span></div>
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGB_ATC_UNORM_BLOCK8</span></div>
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_ATCA_UNORM_BLOCK16</span></div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_DEFAULT&gt;::write}, <span class="comment">// FORMAT_RGBA_ATCI_UNORM_BLOCK16</span></div>
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;</div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; {conv&lt;u8, tvec1, CONVERT_MODE_NORM&gt;::fetch, conv&lt;u8, tvec1, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_L8_UNORM_PACK8</span></div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; {conv&lt;u8, tvec1, CONVERT_MODE_NORM&gt;::fetch, conv&lt;u8, tvec1, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_A8_UNORM_PACK8</span></div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; {conv&lt;u8, tvec2, CONVERT_MODE_NORM&gt;::fetch, conv&lt;u8, tvec2, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_LA8_UNORM_PACK8</span></div>
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; {conv&lt;u16, tvec1, CONVERT_MODE_NORM&gt;::fetch, conv&lt;u16, tvec1, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_L16_UNORM_PACK16</span></div>
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; {conv&lt;u16, tvec1, CONVERT_MODE_NORM&gt;::fetch, conv&lt;u16, tvec1, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_A16_UNORM_PACK16</span></div>
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; {conv&lt;u16, tvec2, CONVERT_MODE_NORM&gt;::fetch, conv&lt;u16, tvec2, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_LA16_UNORM_PACK16</span></div>
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;</div>
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_NORM&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_NORM&gt;::write}, <span class="comment">// FORMAT_BGRX8_UNORM</span></div>
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; {conv&lt;u8, tvec4, CONVERT_MODE_SRGB&gt;::fetch, conv&lt;u8, tvec4, CONVERT_MODE_SRGB&gt;::write}, <span class="comment">// FORMAT_BGRX8_SRGB</span></div>
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;</div>
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; {conv&lt;u8, tvec3, CONVERT_MODE_332UNORM&gt;::fetch, conv&lt;u8, tvec3, CONVERT_MODE_332UNORM&gt;::write} <span class="comment">// FORMAT_RG3B2_UNORM</span></div>
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; };</div>
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; static_assert(<span class="keyword">sizeof</span>(Table) / <span class="keyword">sizeof</span>(Table[0]) == FORMAT_COUNT, <span class="stringliteral">&quot;Texel functions need to be updated&quot;</span>);</div>
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;</div>
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keywordflow">return</span> Table[Format - FORMAT_FIRST];</div>
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; }</div>
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; };</div>
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="ttc" id="a00012_html_a643d8893b84d50b7a3c7fc53b218da8a"><div class="ttname"><a href="a00012.html#a643d8893b84d50b7a3c7fc53b218da8a">gli::texture::load</a></div><div class="ttdeci">gen_type load(extent_type const &amp;TexelCoord, size_type Layer, size_type Face, size_type Level) const </div><div class="ttdoc">Fetch a texel from a texture. The texture format must be uncompressed. </div></div>
<div class="ttc" id="a00074_html_a387137c43ed9616d39ba90e890d181eb"><div class="ttname"><a href="a00074.html#a387137c43ed9616d39ba90e890d181eb">gli::format</a></div><div class="ttdeci">format</div><div class="ttdoc">Texture data format. </div><div class="ttdef"><b>Definition:</b> <a href="a00033_source.html#l00012">format.hpp:12</a></div></div>
<div class="ttc" id="a00074_html_a760a9e4d384a6573979a9c6ffb6c68c1"><div class="ttname"><a href="a00074.html#a760a9e4d384a6573979a9c6ffb6c68c1">gli::is_integer</a></div><div class="ttdeci">bool is_integer(format Format)</div><div class="ttdoc">Evaluate whether the format is an integer format. </div></div>
<div class="ttc" id="a00074_html_a6ceab391900a9c196b639c66dfe1eb34"><div class="ttname"><a href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">gli::load</a></div><div class="ttdeci">texture load(char const *Path)</div><div class="ttdoc">Loads a texture storage_linear from file. </div></div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
<div class="ttc" id="a00074_html_a57dd9012c7e2ba938d1db54a3a7869b5"><div class="ttname"><a href="a00074.html#a57dd9012c7e2ba938d1db54a3a7869b5">gli::convert</a></div><div class="ttdeci">texture_type convert(texture_type const &amp;Texture, format Format)</div><div class="ttdoc">Convert texture data to a new format. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,188 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: coord.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li><li class="navelem"><a class="el" href="dir_2c398834837487e57bd8c53ea39543b9.html">core</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">coord.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;../type.hpp&quot;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a>{</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">namespace </span>detail</div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;{</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keyword">inline</span> vecType&lt;bool, P&gt; in_interval(vecType&lt;T, P&gt; <span class="keyword">const</span>&amp; Value, vecType&lt;T, P&gt; <span class="keyword">const</span>&amp; Min, vecType&lt;T, P&gt; <span class="keyword">const</span>&amp; Max)</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; {</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keywordflow">return</span> greaterThanEqual(Value, Min) &amp;&amp; lessThanEqual(Value, Max);</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; }</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> extent_type, <span class="keyword">typename</span> normalized_type&gt;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">struct </span>coord_nearest</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; {</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; extent_type Texel;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">typename</span> extent_type::bool_type UseTexel;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; };</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> extent_type, <span class="keyword">typename</span> normalized_type&gt;</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">inline</span> coord_nearest&lt;extent_type, normalized_type&gt; make_coord_nearest(extent_type <span class="keyword">const</span>&amp; TexelExtent, normalized_type <span class="keyword">const</span>&amp; SampleCoord)</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; {</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; normalized_type <span class="keyword">const</span> TexelLast(normalized_type(TexelExtent) - normalized_type(1));</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; coord_nearest&lt;extent_type, normalized_type&gt; Coord;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; Coord.Texel = extent_type(round(SampleCoord * TexelLast));</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; Coord.UseTexel = in_interval(Coord.Texel, extent_type(0), TexelExtent - 1);</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">return</span> Coord;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; }</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> extent_type, <span class="keyword">typename</span> normalized_type&gt;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">struct </span>coord_linear</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; {</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; extent_type TexelFloor;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; extent_type TexelCeil;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; normalized_type Blend;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; };</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> extent_type, <span class="keyword">typename</span> normalized_type&gt;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">struct </span>coord_linear_border : <span class="keyword">public</span> coord_linear&lt;extent_type, normalized_type&gt;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; {</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">typename</span> extent_type::bool_type UseTexelFloor;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typename</span> extent_type::bool_type UseTexelCeil;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; };</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> extent_type, <span class="keyword">typename</span> normalized_type&gt;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; GLI_FORCE_INLINE coord_linear&lt;extent_type, normalized_type&gt; make_coord_linear(extent_type <span class="keyword">const</span>&amp; TexelExtent, normalized_type <span class="keyword">const</span>&amp; SampleCoord)</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; coord_linear&lt;extent_type, normalized_type&gt; Coord;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; normalized_type <span class="keyword">const</span> TexelExtentF(TexelExtent);</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; normalized_type <span class="keyword">const</span> TexelLast = TexelExtentF - normalized_type(1);</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; normalized_type <span class="keyword">const</span> ScaledCoord(SampleCoord * TexelLast);</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; normalized_type <span class="keyword">const</span> ScaledCoordFloor = normalized_type(extent_type(ScaledCoord));</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; normalized_type <span class="keyword">const</span> ScaledCoordCeil = normalized_type(extent_type(ScaledCoord + normalized_type(0.5)));</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">//normalized_type const ScaledCoordFloor(floor(ScaledCoord));</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="comment">//normalized_type const ScaledCoordCeil(ceil(ScaledCoord));</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; Coord.Blend = ScaledCoord - ScaledCoordFloor;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; Coord.TexelFloor = extent_type(ScaledCoordFloor);</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; Coord.TexelCeil = extent_type(ScaledCoordCeil);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> Coord;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> extent_type, <span class="keyword">typename</span> normalized_type&gt;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; GLI_FORCE_INLINE coord_linear_border&lt;extent_type, normalized_type&gt; make_coord_linear_border(extent_type <span class="keyword">const</span>&amp; TexelExtent, normalized_type <span class="keyword">const</span>&amp; SampleCoord)</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; coord_linear_border&lt;extent_type, normalized_type&gt; Coord;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; normalized_type <span class="keyword">const</span> TexelExtentF(TexelExtent);</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; normalized_type <span class="keyword">const</span> TexelLast = TexelExtentF - normalized_type(1);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; normalized_type <span class="keyword">const</span> ScaledCoord(SampleCoord * TexelLast);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; normalized_type <span class="keyword">const</span> ScaledCoordFloor(floor(ScaledCoord));</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; normalized_type <span class="keyword">const</span> ScaledCoordCeil(ceil(ScaledCoord));</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; Coord.Blend = ScaledCoord - ScaledCoordFloor;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; Coord.TexelFloor = extent_type(ScaledCoordFloor);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; Coord.TexelCeil = extent_type(ScaledCoordCeil);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; Coord.UseTexelFloor = in_interval(Coord.TexelFloor, extent_type(0), TexelExtent - 1);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; Coord.UseTexelCeil = in_interval(Coord.TexelCeil, extent_type(0), TexelExtent - 1);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">return</span> Coord;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

133
external/gli/doc/api/a00026.html vendored 100644
View File

@ -0,0 +1,133 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: copy.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">copy.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Include to copy textures or a subset of either textures.
<a href="#details">More...</a></p>
<p><a href="a00026_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:a00074"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">gli</a></td></tr>
<tr class="memdesc:a00074"><td class="mdescLeft">&#160;</td><td class="mdescRight">Namespace where all the classes and functions provided by GLI are exposed. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a18991d99adce4e48cbbfe29f6a37dc53"><td class="memTemplParams" colspan="2"><a class="anchor" id="a18991d99adce4e48cbbfe29f6a37dc53"></a>
template&lt;typename texture_src_type , typename texture_dst_type &gt; </td></tr>
<tr class="memitem:a18991d99adce4e48cbbfe29f6a37dc53"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00074.html#a18991d99adce4e48cbbfe29f6a37dc53">copy</a> (texture_src_type const &amp;TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, texture_dst_type &amp;TextureDst, size_t LayerDst, size_t FaceDst, size_t LevelDst)</td></tr>
<tr class="memdesc:a18991d99adce4e48cbbfe29f6a37dc53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a specific image of a texture. <br /></td></tr>
<tr class="separator:a18991d99adce4e48cbbfe29f6a37dc53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61abe48c5559f246bb2861ae7f1ddba5"><td class="memTemplParams" colspan="2"><a class="anchor" id="a61abe48c5559f246bb2861ae7f1ddba5"></a>
template&lt;typename texture_src_type , typename texture_dst_type &gt; </td></tr>
<tr class="memitem:a61abe48c5559f246bb2861ae7f1ddba5"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00074.html#a61abe48c5559f246bb2861ae7f1ddba5">copy</a> (texture_src_type const &amp;TextureSrc, texture_dst_type &amp;TextureDst)</td></tr>
<tr class="memdesc:a61abe48c5559f246bb2861ae7f1ddba5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a texture. <br /></td></tr>
<tr class="separator:a61abe48c5559f246bb2861ae7f1ddba5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Include to copy textures or a subset of either textures. </p>
<p>These operations are performed without memory allocations. </p>
<p>Definition in file <a class="el" href="a00026_source.html">copy.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,161 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: copy.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">copy.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00026.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00071.html">type.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_src_type, <span class="keyword">typename</span> texture_dst_type&gt;</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keywordtype">void</span> <a class="code" href="a00074.html#a18991d99adce4e48cbbfe29f6a37dc53">copy</a>(</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; texture_src_type <span class="keyword">const</span>&amp; TextureSrc, <span class="keywordtype">size_t</span> LayerSrc, <span class="keywordtype">size_t</span> FaceSrc, <span class="keywordtype">size_t</span> LevelSrc,</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; texture_dst_type&amp; TextureDst, <span class="keywordtype">size_t</span> LayerDst, <span class="keywordtype">size_t</span> FaceDst, <span class="keywordtype">size_t</span> LevelDst);</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_src_type, <span class="keyword">typename</span> texture_dst_type&gt;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordtype">void</span> <a class="code" href="a00074.html#a18991d99adce4e48cbbfe29f6a37dc53">copy</a>(</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; texture_src_type <span class="keyword">const</span>&amp; TextureSrc,</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; texture_dst_type&amp; TextureDst);</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="comment">// Copy an entire level of a texture</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_src_type, <span class="keyword">typename</span> texture_dst_type&gt;</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordtype">void</span> copy_level(</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; texture_src_type <span class="keyword">const</span>&amp; TextureSrc, <span class="keywordtype">size_t</span> BaseLevelSrc,</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; texture_dst_type&amp; TextureDst, <span class="keywordtype">size_t</span> BaseLevelDst);</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="comment">// Copy multiple levels of a texture</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_src_type, <span class="keyword">typename</span> texture_dst_type&gt;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">void</span> copy_level(</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; texture_src_type <span class="keyword">const</span>&amp; TextureSrc, <span class="keywordtype">size_t</span> BaseLevelSrc,</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; texture_dst_type&amp; TextureDst, <span class="keywordtype">size_t</span> BaseLevelDst,</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordtype">size_t</span> LevelCount);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="comment">// Copy an entire face of a texture</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_src_type, <span class="keyword">typename</span> texture_dst_type&gt;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">void</span> copy_face(</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; texture_src_type <span class="keyword">const</span>&amp; TextureSrc, <span class="keywordtype">size_t</span> BaseFaceSrc,</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; texture_dst_type&amp; TextureDst, <span class="keywordtype">size_t</span> BaseFaceDst);</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="comment">// Copy multiple faces of a texture</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_src_type, <span class="keyword">typename</span> texture_dst_type&gt;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">void</span> copy_face(</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; texture_src_type <span class="keyword">const</span>&amp; TextureSrc, <span class="keywordtype">size_t</span> BaseFaceSrc,</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; texture_dst_type&amp; TextureDst, <span class="keywordtype">size_t</span> BaseFaceDst,</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">size_t</span> FaceCount);</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="comment">// Copy an entire layer of a texture</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_src_type, <span class="keyword">typename</span> texture_dst_type&gt;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">void</span> copy_layer(</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; texture_src_type <span class="keyword">const</span>&amp; TextureSrc, <span class="keywordtype">size_t</span> BaseLayerSrc,</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; texture_dst_type&amp; TextureDst, <span class="keywordtype">size_t</span> BaseLayerDst);</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">// Copy multiple layers of a texture</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_src_type, <span class="keyword">typename</span> texture_dst_type&gt;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">void</span> copy_layer(</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; texture_src_type <span class="keyword">const</span>&amp; TextureSrc, <span class="keywordtype">size_t</span> BaseLayerSrc,</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; texture_dst_type&amp; TextureDst, <span class="keywordtype">size_t</span> BaseLayerDst,</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">size_t</span> LayerCount);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#include &quot;./core/copy.inl&quot;</span></div>
<div class="ttc" id="a00074_html_a18991d99adce4e48cbbfe29f6a37dc53"><div class="ttname"><a href="a00074.html#a18991d99adce4e48cbbfe29f6a37dc53">gli::copy</a></div><div class="ttdeci">void copy(texture_src_type const &amp;TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, texture_dst_type &amp;TextureDst, size_t LayerDst, size_t FaceDst, size_t LevelDst)</div><div class="ttdoc">Copy a specific image of a texture. </div></div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
<div class="ttc" id="a00071_html"><div class="ttname"><a href="a00071.html">type.hpp</a></div><div class="ttdoc">Include to use basic GLI types. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

164
external/gli/doc/api/a00027.html vendored 100644
View File

@ -0,0 +1,164 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: duplicate.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">duplicate.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Include to duplicate textures, images or a subset of either textures or an image.
<a href="#details">More...</a></p>
<p><a href="a00027_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:a00074"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">gli</a></td></tr>
<tr class="memdesc:a00074"><td class="mdescLeft">&#160;</td><td class="mdescRight">Namespace where all the classes and functions provided by GLI are exposed. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a457d37c485551c415f47e516a6c2d94b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a457d37c485551c415f47e516a6c2d94b"></a>
image&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a457d37c485551c415f47e516a6c2d94b">duplicate</a> (image const &amp;Image)</td></tr>
<tr class="memdesc:a457d37c485551c415f47e516a6c2d94b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate an image and create a new image with a new storage_linear allocation. <br /></td></tr>
<tr class="separator:a457d37c485551c415f47e516a6c2d94b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1dab87dc368b30af802162e17637f94"><td class="memTemplParams" colspan="2"><a class="anchor" id="ab1dab87dc368b30af802162e17637f94"></a>
template&lt;typename texType &gt; </td></tr>
<tr class="memitem:ab1dab87dc368b30af802162e17637f94"><td class="memTemplItemLeft" align="right" valign="top">texture&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00074.html#ab1dab87dc368b30af802162e17637f94">duplicate</a> (texType const &amp;Texture)</td></tr>
<tr class="memdesc:ab1dab87dc368b30af802162e17637f94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate a texture and create a new texture with a new storage_linear allocation. <br /></td></tr>
<tr class="separator:ab1dab87dc368b30af802162e17637f94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66cb77e099d5f8ece2010924ad39eb34"><td class="memTemplParams" colspan="2">template&lt;typename texType &gt; </td></tr>
<tr class="memitem:a66cb77e099d5f8ece2010924ad39eb34"><td class="memTemplItemLeft" align="right" valign="top">texture&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00074.html#a66cb77e099d5f8ece2010924ad39eb34">duplicate</a> (texType const &amp;Texture, format Format)</td></tr>
<tr class="memdesc:a66cb77e099d5f8ece2010924ad39eb34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate a texture and create a new texture with a new storage_linear allocation but a different format. <a href="a00074.html#a66cb77e099d5f8ece2010924ad39eb34">More...</a><br /></td></tr>
<tr class="separator:a66cb77e099d5f8ece2010924ad39eb34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82a93ed5b6cc923c44fa337aa69a63bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a82a93ed5b6cc923c44fa337aa69a63bd"></a>
texture&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a82a93ed5b6cc923c44fa337aa69a63bd">duplicate</a> (texture1d const &amp;Texture, texture1d::size_type BaseLevel, texture1d::size_type MaxLevel)</td></tr>
<tr class="memdesc:a82a93ed5b6cc923c44fa337aa69a63bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate a subset of a texture and create a new texture with a new storage_linear allocation. <br /></td></tr>
<tr class="separator:a82a93ed5b6cc923c44fa337aa69a63bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7591d621e23536c1ed933c33c241b932"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7591d621e23536c1ed933c33c241b932"></a>
texture&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a7591d621e23536c1ed933c33c241b932">duplicate</a> (texture1d_array const &amp;Texture, texture1d_array::size_type BaseLayer, texture1d_array::size_type MaxLayer, texture1d_array::size_type BaseLevel, texture1d_array::size_type MaxLevel)</td></tr>
<tr class="memdesc:a7591d621e23536c1ed933c33c241b932"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate a subset of a texture and create a new texture with a new storage_linear allocation. <br /></td></tr>
<tr class="separator:a7591d621e23536c1ed933c33c241b932"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f227b9c781fc807b4e6c25712637c88"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6f227b9c781fc807b4e6c25712637c88"></a>
texture&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a6f227b9c781fc807b4e6c25712637c88">duplicate</a> (texture2d const &amp;Texture, texture2d::size_type BaseLevel, texture2d::size_type MaxLevel)</td></tr>
<tr class="memdesc:a6f227b9c781fc807b4e6c25712637c88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate a subset of a texture and create a new texture with a new storage_linear allocation. <br /></td></tr>
<tr class="separator:a6f227b9c781fc807b4e6c25712637c88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc4f5d284f4bdeee5269c5df2fed9837"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adc4f5d284f4bdeee5269c5df2fed9837"></a>
texture&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#adc4f5d284f4bdeee5269c5df2fed9837">duplicate</a> (texture2d_array const &amp;Texture, texture2d_array::size_type BaseLayer, texture2d_array::size_type MaxLayer, texture2d_array::size_type BaseLevel, texture2d_array::size_type MaxLevel)</td></tr>
<tr class="memdesc:adc4f5d284f4bdeee5269c5df2fed9837"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate a subset of a texture and create a new texture with a new storage_linear allocation. <br /></td></tr>
<tr class="separator:adc4f5d284f4bdeee5269c5df2fed9837"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cad06041e1de52eb6a546befdc3c0ad"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9cad06041e1de52eb6a546befdc3c0ad"></a>
texture&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a9cad06041e1de52eb6a546befdc3c0ad">duplicate</a> (texture3d const &amp;Texture, texture3d::size_type BaseLevel, texture3d::size_type MaxLevel)</td></tr>
<tr class="memdesc:a9cad06041e1de52eb6a546befdc3c0ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate a subset of a texture and create a new texture with a new storage_linear allocation. <br /></td></tr>
<tr class="separator:a9cad06041e1de52eb6a546befdc3c0ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af44fdfbf60fe75a3d8eb1d4b5a677815"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af44fdfbf60fe75a3d8eb1d4b5a677815"></a>
texture&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#af44fdfbf60fe75a3d8eb1d4b5a677815">duplicate</a> (texture_cube const &amp;Texture, texture_cube::size_type BaseFace, texture_cube::size_type MaxFace, texture_cube::size_type BaseLevel, texture_cube::size_type MaxLevel)</td></tr>
<tr class="memdesc:af44fdfbf60fe75a3d8eb1d4b5a677815"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate a subset of a texture and create a new texture with a new storage_linear allocation. <br /></td></tr>
<tr class="separator:af44fdfbf60fe75a3d8eb1d4b5a677815"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af07ef1fffe312aa4f8b68dc38b7d39fa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af07ef1fffe312aa4f8b68dc38b7d39fa"></a>
texture&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#af07ef1fffe312aa4f8b68dc38b7d39fa">duplicate</a> (texture_cube_array const &amp;Texture, texture_cube_array::size_type BaseLayer, texture_cube_array::size_type MaxLayer, texture_cube_array::size_type BaseFace, texture_cube_array::size_type MaxFace, texture_cube_array::size_type BaseLevel, texture_cube_array::size_type MaxLevel)</td></tr>
<tr class="memdesc:af07ef1fffe312aa4f8b68dc38b7d39fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate a subset of a texture and create a new texture with a new storage_linear allocation. <br /></td></tr>
<tr class="separator:af07ef1fffe312aa4f8b68dc38b7d39fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Include to duplicate textures, images or a subset of either textures or an image. </p>
<p>These operations will cause memory allocations. </p>
<p>Definition in file <a class="el" href="a00027_source.html">duplicate.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,168 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: duplicate.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">duplicate.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00027.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00037.html">image.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00063.html">texture1d.hpp</a>&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00064.html">texture1d_array.hpp</a>&quot;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00065.html">texture2d.hpp</a>&quot;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00066.html">texture2d_array.hpp</a>&quot;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00067.html">texture3d.hpp</a>&quot;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00068.html">texture_cube.hpp</a>&quot;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00069.html">texture_cube_array.hpp</a>&quot;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;{</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; image <a class="code" href="a00074.html#a457d37c485551c415f47e516a6c2d94b">duplicate</a>(image <span class="keyword">const</span> &amp; Image);</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texType&gt;</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; texture <a class="code" href="a00074.html#a457d37c485551c415f47e516a6c2d94b">duplicate</a>(texType <span class="keyword">const</span>&amp; Texture);</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texType&gt;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; texture <a class="code" href="a00074.html#a457d37c485551c415f47e516a6c2d94b">duplicate</a>(texType <span class="keyword">const</span>&amp; Texture, <a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format);</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; texture <a class="code" href="a00074.html#a457d37c485551c415f47e516a6c2d94b">duplicate</a>(</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; texture1d <span class="keyword">const</span>&amp; Texture,</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; texture1d::size_type BaseLevel, texture1d::size_type MaxLevel);</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; texture <a class="code" href="a00074.html#a457d37c485551c415f47e516a6c2d94b">duplicate</a>(</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; texture1d_array <span class="keyword">const</span>&amp; Texture,</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; texture1d_array::size_type BaseLayer, texture1d_array::size_type MaxLayer,</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; texture1d_array::size_type BaseLevel, texture1d_array::size_type MaxLevel);</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; texture <a class="code" href="a00074.html#a457d37c485551c415f47e516a6c2d94b">duplicate</a>(</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; texture2d <span class="keyword">const</span>&amp; Texture,</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; texture2d::size_type BaseLevel, texture2d::size_type MaxLevel);</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; texture <a class="code" href="a00074.html#a457d37c485551c415f47e516a6c2d94b">duplicate</a>(</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; texture2d_array <span class="keyword">const</span>&amp; Texture,</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; texture2d_array::size_type BaseLayer, texture2d_array::size_type MaxLayer,</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; texture2d_array::size_type BaseLevel, texture2d_array::size_type MaxLevel);</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; texture <a class="code" href="a00074.html#a457d37c485551c415f47e516a6c2d94b">duplicate</a>(</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; texture3d <span class="keyword">const</span>&amp; Texture,</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; texture3d::size_type BaseLevel, texture3d::size_type MaxLevel);</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; texture <a class="code" href="a00074.html#a457d37c485551c415f47e516a6c2d94b">duplicate</a>(</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; texture_cube <span class="keyword">const</span>&amp; Texture,</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; texture_cube::size_type BaseFace, texture_cube::size_type MaxFace,</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; texture_cube::size_type BaseLevel, texture_cube::size_type MaxLevel);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; texture <a class="code" href="a00074.html#a457d37c485551c415f47e516a6c2d94b">duplicate</a>(</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; texture_cube_array <span class="keyword">const</span>&amp; Texture,</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; texture_cube_array::size_type BaseLayer, texture_cube_array::size_type MaxLayer,</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; texture_cube_array::size_type BaseFace, texture_cube_array::size_type MaxFace,</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; texture_cube_array::size_type BaseLevel, texture_cube_array::size_type MaxLevel);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#include &quot;./core/duplicate.inl&quot;</span></div>
<div class="ttc" id="a00068_html"><div class="ttname"><a href="a00068.html">texture_cube.hpp</a></div><div class="ttdoc">Include to use cube map textures. </div></div>
<div class="ttc" id="a00074_html_a387137c43ed9616d39ba90e890d181eb"><div class="ttname"><a href="a00074.html#a387137c43ed9616d39ba90e890d181eb">gli::format</a></div><div class="ttdeci">format</div><div class="ttdoc">Texture data format. </div><div class="ttdef"><b>Definition:</b> <a href="a00033_source.html#l00012">format.hpp:12</a></div></div>
<div class="ttc" id="a00064_html"><div class="ttname"><a href="a00064.html">texture1d_array.hpp</a></div><div class="ttdoc">Include to use 1d array textures. </div></div>
<div class="ttc" id="a00067_html"><div class="ttname"><a href="a00067.html">texture3d.hpp</a></div><div class="ttdoc">Include to use 3d textures. </div></div>
<div class="ttc" id="a00063_html"><div class="ttname"><a href="a00063.html">texture1d.hpp</a></div><div class="ttdoc">Include to use 1d textures. </div></div>
<div class="ttc" id="a00074_html_a457d37c485551c415f47e516a6c2d94b"><div class="ttname"><a href="a00074.html#a457d37c485551c415f47e516a6c2d94b">gli::duplicate</a></div><div class="ttdeci">image duplicate(image const &amp;Image)</div><div class="ttdoc">Duplicate an image and create a new image with a new storage_linear allocation. </div></div>
<div class="ttc" id="a00066_html"><div class="ttname"><a href="a00066.html">texture2d_array.hpp</a></div><div class="ttdoc">Include to use 2d array textures. </div></div>
<div class="ttc" id="a00037_html"><div class="ttname"><a href="a00037.html">image.hpp</a></div><div class="ttdoc">Include to use images, a representation of a single texture level. </div></div>
<div class="ttc" id="a00069_html"><div class="ttname"><a href="a00069.html">texture_cube_array.hpp</a></div><div class="ttdoc">Include to use cube map array textures. </div></div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
<div class="ttc" id="a00065_html"><div class="ttname"><a href="a00065.html">texture2d.hpp</a></div><div class="ttdoc">Include to use 2d textures. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

133
external/gli/doc/api/a00028.html vendored 100644
View File

@ -0,0 +1,133 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: dx.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">dx.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Include to translate GLI enums to DirectX enums.
<a href="#details">More...</a></p>
<p><a href="a00028_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00001.html">dx</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translation class to convert GLI enums into DirectX enums. <a href="a00001.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:a00074"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">gli</a></td></tr>
<tr class="memdesc:a00074"><td class="mdescLeft">&#160;</td><td class="mdescRight">Namespace where all the classes and functions provided by GLI are exposed. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a5a607dedd5d94ffbb3112d9a4ea793f0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5a607dedd5d94ffbb3112d9a4ea793f0"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a5a607dedd5d94ffbb3112d9a4ea793f0">is_dds_ext</a> (target Target, format Format)</td></tr>
<tr class="memdesc:a5a607dedd5d94ffbb3112d9a4ea793f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate whether a target and format combinaison is only supported by the DDS container through GLI DDS extension. <br /></td></tr>
<tr class="separator:a5a607dedd5d94ffbb3112d9a4ea793f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Include to translate GLI enums to DirectX enums. </p>
<p>Definition in file <a class="el" href="a00028_source.html">dx.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,592 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: dx.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">dx.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00028.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00033.html">format.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00061.html">target.hpp</a>&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;array&gt;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;{</div>
<div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="a00001.html"> 13</a></span>&#160; <span class="keyword">class </span><a class="code" href="a00001.html">dx</a></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; {</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor"> #define GLI_MAKEFOURCC(ch0, ch1, ch2, ch3) \</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor"> (std::uint32_t)( \</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor"> (((std::uint32_t)(std::uint8_t)(ch3) &lt;&lt; 24) &amp; 0xFF000000) | \</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"> (((std::uint32_t)(std::uint8_t)(ch2) &lt;&lt; 16) &amp; 0x00FF0000) | \</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"> (((std::uint32_t)(std::uint8_t)(ch1) &lt;&lt; 8) &amp; 0x0000FF00) | \</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"> ((std::uint32_t)(std::uint8_t)(ch0) &amp; 0x000000FF) )</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">enum</span> d3dfmt</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; {</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; D3DFMT_UNKNOWN = 0,</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; D3DFMT_R8G8B8 = 20,</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; D3DFMT_A8R8G8B8 = 21,</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; D3DFMT_X8R8G8B8 = 22,</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; D3DFMT_R5G6B5 = 23,</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; D3DFMT_X1R5G5B5 = 24,</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; D3DFMT_A1R5G5B5 = 25,</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; D3DFMT_A4R4G4B4 = 26,</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; D3DFMT_R3G3B2 = 27,</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; D3DFMT_A8 = 28,</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; D3DFMT_A8R3G3B2 = 29,</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; D3DFMT_X4R4G4B4 = 30,</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; D3DFMT_A2B10G10R10 = 31,</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; D3DFMT_A8B8G8R8 = 32,</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; D3DFMT_X8B8G8R8 = 33,</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; D3DFMT_G16R16 = 34,</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; D3DFMT_A2R10G10B10 = 35,</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; D3DFMT_A16B16G16R16 = 36,</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; D3DFMT_A8P8 = 40,</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; D3DFMT_P8 = 41,</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; D3DFMT_L8 = 50,</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; D3DFMT_A8L8 = 51,</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; D3DFMT_A4L4 = 52,</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; D3DFMT_V8U8 = 60,</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; D3DFMT_L6V5U5 = 61,</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; D3DFMT_X8L8V8U8 = 62,</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; D3DFMT_Q8W8V8U8 = 63,</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; D3DFMT_V16U16 = 64,</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; D3DFMT_A2W10V10U10 = 67,</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; D3DFMT_UYVY = GLI_MAKEFOURCC(<span class="charliteral">&#39;U&#39;</span>, <span class="charliteral">&#39;Y&#39;</span>, <span class="charliteral">&#39;V&#39;</span>, <span class="charliteral">&#39;Y&#39;</span>),</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; D3DFMT_R8G8_B8G8 = GLI_MAKEFOURCC(<span class="charliteral">&#39;R&#39;</span>, <span class="charliteral">&#39;G&#39;</span>, <span class="charliteral">&#39;B&#39;</span>, <span class="charliteral">&#39;G&#39;</span>),</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; D3DFMT_YUY2 = GLI_MAKEFOURCC(<span class="charliteral">&#39;Y&#39;</span>, <span class="charliteral">&#39;U&#39;</span>, <span class="charliteral">&#39;Y&#39;</span>, <span class="charliteral">&#39;2&#39;</span>),</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; D3DFMT_G8R8_G8B8 = GLI_MAKEFOURCC(<span class="charliteral">&#39;G&#39;</span>, <span class="charliteral">&#39;R&#39;</span>, <span class="charliteral">&#39;G&#39;</span>, <span class="charliteral">&#39;B&#39;</span>),</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; D3DFMT_DXT1 = GLI_MAKEFOURCC(<span class="charliteral">&#39;D&#39;</span>, <span class="charliteral">&#39;X&#39;</span>, <span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;1&#39;</span>),</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; D3DFMT_DXT2 = GLI_MAKEFOURCC(<span class="charliteral">&#39;D&#39;</span>, <span class="charliteral">&#39;X&#39;</span>, <span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;2&#39;</span>),</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; D3DFMT_DXT3 = GLI_MAKEFOURCC(<span class="charliteral">&#39;D&#39;</span>, <span class="charliteral">&#39;X&#39;</span>, <span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;3&#39;</span>),</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; D3DFMT_DXT4 = GLI_MAKEFOURCC(<span class="charliteral">&#39;D&#39;</span>, <span class="charliteral">&#39;X&#39;</span>, <span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;4&#39;</span>),</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; D3DFMT_DXT5 = GLI_MAKEFOURCC(<span class="charliteral">&#39;D&#39;</span>, <span class="charliteral">&#39;X&#39;</span>, <span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;5&#39;</span>),</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; D3DFMT_ATI1 = GLI_MAKEFOURCC(<span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;I&#39;</span>, <span class="charliteral">&#39;1&#39;</span>),</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; D3DFMT_AT1N = GLI_MAKEFOURCC(<span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;1&#39;</span>, <span class="charliteral">&#39;N&#39;</span>),</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; D3DFMT_ATI2 = GLI_MAKEFOURCC(<span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;I&#39;</span>, <span class="charliteral">&#39;2&#39;</span>),</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; D3DFMT_AT2N = GLI_MAKEFOURCC(<span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;2&#39;</span>, <span class="charliteral">&#39;N&#39;</span>),</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; D3DFMT_BC4U = GLI_MAKEFOURCC(<span class="charliteral">&#39;B&#39;</span>, <span class="charliteral">&#39;C&#39;</span>, <span class="charliteral">&#39;4&#39;</span>, <span class="charliteral">&#39;U&#39;</span>),</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; D3DFMT_BC4S = GLI_MAKEFOURCC(<span class="charliteral">&#39;B&#39;</span>, <span class="charliteral">&#39;C&#39;</span>, <span class="charliteral">&#39;4&#39;</span>, <span class="charliteral">&#39;S&#39;</span>),</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; D3DFMT_BC5U = GLI_MAKEFOURCC(<span class="charliteral">&#39;B&#39;</span>, <span class="charliteral">&#39;C&#39;</span>, <span class="charliteral">&#39;5&#39;</span>, <span class="charliteral">&#39;U&#39;</span>),</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; D3DFMT_BC5S = GLI_MAKEFOURCC(<span class="charliteral">&#39;B&#39;</span>, <span class="charliteral">&#39;C&#39;</span>, <span class="charliteral">&#39;5&#39;</span>, <span class="charliteral">&#39;S&#39;</span>),</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; D3DFMT_ETC = GLI_MAKEFOURCC(<span class="charliteral">&#39;E&#39;</span>, <span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;C&#39;</span>, <span class="charliteral">&#39; &#39;</span>),</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; D3DFMT_ETC1 = GLI_MAKEFOURCC(<span class="charliteral">&#39;E&#39;</span>, <span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;C&#39;</span>, <span class="charliteral">&#39;1&#39;</span>),</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; D3DFMT_ATC = GLI_MAKEFOURCC(<span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;C&#39;</span>, <span class="charliteral">&#39; &#39;</span>),</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; D3DFMT_ATCA = GLI_MAKEFOURCC(<span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;C&#39;</span>, <span class="charliteral">&#39;A&#39;</span>),</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; D3DFMT_ATCI = GLI_MAKEFOURCC(<span class="charliteral">&#39;A&#39;</span>, <span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;C&#39;</span>, <span class="charliteral">&#39;I&#39;</span>),</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; D3DFMT_POWERVR_2BPP = GLI_MAKEFOURCC(<span class="charliteral">&#39;P&#39;</span>, <span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;C&#39;</span>, <span class="charliteral">&#39;2&#39;</span>),</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; D3DFMT_POWERVR_4BPP = GLI_MAKEFOURCC(<span class="charliteral">&#39;P&#39;</span>, <span class="charliteral">&#39;T&#39;</span>, <span class="charliteral">&#39;C&#39;</span>, <span class="charliteral">&#39;4&#39;</span>),</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; D3DFMT_D16_LOCKABLE = 70,</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; D3DFMT_D32 = 71,</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; D3DFMT_D15S1 = 73,</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; D3DFMT_D24S8 = 75,</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; D3DFMT_D24X8 = 77,</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; D3DFMT_D24X4S4 = 79,</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; D3DFMT_D16 = 80,</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; D3DFMT_D32F_LOCKABLE = 82,</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; D3DFMT_D24FS8 = 83,</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; D3DFMT_L16 = 81,</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; D3DFMT_VERTEXDATA = 100,</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; D3DFMT_INDEX16 = 101,</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; D3DFMT_INDEX32 = 102,</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; D3DFMT_Q16W16V16U16 = 110,</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; D3DFMT_MULTI2_ARGB8 = GLI_MAKEFOURCC(<span class="charliteral">&#39;M&#39;</span>,<span class="charliteral">&#39;E&#39;</span>,<span class="charliteral">&#39;T&#39;</span>,<span class="charliteral">&#39;1&#39;</span>),</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; D3DFMT_R16F = 111,</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; D3DFMT_G16R16F = 112,</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; D3DFMT_A16B16G16R16F = 113,</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; D3DFMT_R32F = 114,</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; D3DFMT_G32R32F = 115,</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; D3DFMT_A32B32G32R32F = 116,</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; D3DFMT_CxV8U8 = 117,</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; D3DFMT_DX10 = GLI_MAKEFOURCC(<span class="charliteral">&#39;D&#39;</span>, <span class="charliteral">&#39;X&#39;</span>, <span class="charliteral">&#39;1&#39;</span>, <span class="charliteral">&#39;0&#39;</span>),</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; D3DFMT_GLI1 = GLI_MAKEFOURCC(<span class="charliteral">&#39;G&#39;</span>, <span class="charliteral">&#39;L&#39;</span>, <span class="charliteral">&#39;I&#39;</span>, <span class="charliteral">&#39;1&#39;</span>),</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; D3DFMT_FORCE_DWORD = 0x7fffffff</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; };</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; </div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">enum</span> dxgi_format_dds</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; DXGI_FORMAT_UNKNOWN = 0,</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; DXGI_FORMAT_R32G32B32A32_TYPELESS = 1,</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; DXGI_FORMAT_R32G32B32A32_FLOAT = 2,</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; DXGI_FORMAT_R32G32B32A32_UINT = 3,</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; DXGI_FORMAT_R32G32B32A32_SINT = 4,</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; DXGI_FORMAT_R32G32B32_TYPELESS = 5,</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; DXGI_FORMAT_R32G32B32_FLOAT = 6,</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; DXGI_FORMAT_R32G32B32_UINT = 7,</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; DXGI_FORMAT_R32G32B32_SINT = 8,</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; DXGI_FORMAT_R16G16B16A16_TYPELESS = 9,</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; DXGI_FORMAT_R16G16B16A16_FLOAT = 10,</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; DXGI_FORMAT_R16G16B16A16_UNORM = 11,</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; DXGI_FORMAT_R16G16B16A16_UINT = 12,</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; DXGI_FORMAT_R16G16B16A16_SNORM = 13,</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; DXGI_FORMAT_R16G16B16A16_SINT = 14,</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; DXGI_FORMAT_R32G32_TYPELESS = 15,</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; DXGI_FORMAT_R32G32_FLOAT = 16,</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; DXGI_FORMAT_R32G32_UINT = 17,</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; DXGI_FORMAT_R32G32_SINT = 18,</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; DXGI_FORMAT_R32G8X24_TYPELESS = 19,</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20,</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21,</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22,</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; DXGI_FORMAT_R10G10B10A2_TYPELESS = 23,</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; DXGI_FORMAT_R10G10B10A2_UNORM = 24,</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; DXGI_FORMAT_R10G10B10A2_UINT = 25,</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; DXGI_FORMAT_R11G11B10_FLOAT = 26,</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; DXGI_FORMAT_R8G8B8A8_TYPELESS = 27,</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; DXGI_FORMAT_R8G8B8A8_UNORM = 28,</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29,</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; DXGI_FORMAT_R8G8B8A8_UINT = 30,</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; DXGI_FORMAT_R8G8B8A8_SNORM = 31,</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; DXGI_FORMAT_R8G8B8A8_SINT = 32,</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; DXGI_FORMAT_R16G16_TYPELESS = 33,</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; DXGI_FORMAT_R16G16_FLOAT = 34,</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; DXGI_FORMAT_R16G16_UNORM = 35,</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; DXGI_FORMAT_R16G16_UINT = 36,</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; DXGI_FORMAT_R16G16_SNORM = 37,</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; DXGI_FORMAT_R16G16_SINT = 38,</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; DXGI_FORMAT_R32_TYPELESS = 39,</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; DXGI_FORMAT_D32_FLOAT = 40,</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; DXGI_FORMAT_R32_FLOAT = 41,</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; DXGI_FORMAT_R32_UINT = 42,</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; DXGI_FORMAT_R32_SINT = 43,</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; DXGI_FORMAT_R24G8_TYPELESS = 44,</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; DXGI_FORMAT_D24_UNORM_S8_UINT = 45,</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46,</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47,</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; DXGI_FORMAT_R8G8_TYPELESS = 48,</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; DXGI_FORMAT_R8G8_UNORM = 49,</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; DXGI_FORMAT_R8G8_UINT = 50,</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; DXGI_FORMAT_R8G8_SNORM = 51,</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; DXGI_FORMAT_R8G8_SINT = 52,</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; DXGI_FORMAT_R16_TYPELESS = 53,</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; DXGI_FORMAT_R16_FLOAT = 54,</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; DXGI_FORMAT_D16_UNORM = 55,</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; DXGI_FORMAT_R16_UNORM = 56,</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; DXGI_FORMAT_R16_UINT = 57,</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; DXGI_FORMAT_R16_SNORM = 58,</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; DXGI_FORMAT_R16_SINT = 59,</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; DXGI_FORMAT_R8_TYPELESS = 60,</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; DXGI_FORMAT_R8_UNORM = 61,</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; DXGI_FORMAT_R8_UINT = 62,</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; DXGI_FORMAT_R8_SNORM = 63,</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; DXGI_FORMAT_R8_SINT = 64,</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; DXGI_FORMAT_A8_UNORM = 65,</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; DXGI_FORMAT_R1_UNORM = 66,</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67,</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; DXGI_FORMAT_R8G8_B8G8_UNORM = 68,</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; DXGI_FORMAT_G8R8_G8B8_UNORM = 69,</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; DXGI_FORMAT_BC1_TYPELESS = 70,</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; DXGI_FORMAT_BC1_UNORM = 71,</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; DXGI_FORMAT_BC1_UNORM_SRGB = 72,</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; DXGI_FORMAT_BC2_TYPELESS = 73,</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; DXGI_FORMAT_BC2_UNORM = 74,</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; DXGI_FORMAT_BC2_UNORM_SRGB = 75,</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; DXGI_FORMAT_BC3_TYPELESS = 76,</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; DXGI_FORMAT_BC3_UNORM = 77,</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; DXGI_FORMAT_BC3_UNORM_SRGB = 78,</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; DXGI_FORMAT_BC4_TYPELESS = 79,</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; DXGI_FORMAT_BC4_UNORM = 80,</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; DXGI_FORMAT_BC4_SNORM = 81,</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; DXGI_FORMAT_BC5_TYPELESS = 82,</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; DXGI_FORMAT_BC5_UNORM = 83,</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; DXGI_FORMAT_BC5_SNORM = 84,</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; DXGI_FORMAT_B5G6R5_UNORM = 85,</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; DXGI_FORMAT_B5G5R5A1_UNORM = 86,</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; DXGI_FORMAT_B8G8R8A8_UNORM = 87,</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; DXGI_FORMAT_B8G8R8X8_UNORM = 88,</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89,</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; DXGI_FORMAT_B8G8R8A8_TYPELESS = 90,</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 91,</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; DXGI_FORMAT_B8G8R8X8_TYPELESS = 92,</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 93,</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; DXGI_FORMAT_BC6H_TYPELESS = 94,</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; DXGI_FORMAT_BC6H_UF16 = 95,</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; DXGI_FORMAT_BC6H_SF16 = 96,</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; DXGI_FORMAT_BC7_TYPELESS = 97,</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; DXGI_FORMAT_BC7_UNORM = 98,</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; DXGI_FORMAT_BC7_UNORM_SRGB = 99,</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; DXGI_FORMAT_AYUV = 100,</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; DXGI_FORMAT_Y410 = 101,</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; DXGI_FORMAT_Y416 = 102,</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; DXGI_FORMAT_NV12 = 103,</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; DXGI_FORMAT_P010 = 104,</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; DXGI_FORMAT_P016 = 105,</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; DXGI_FORMAT_420_OPAQUE = 106,</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; DXGI_FORMAT_YUY2 = 107,</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; DXGI_FORMAT_Y210 = 108,</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; DXGI_FORMAT_Y216 = 109,</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; DXGI_FORMAT_NV11 = 110,</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; DXGI_FORMAT_AI44 = 111,</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; DXGI_FORMAT_IA44 = 112,</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; DXGI_FORMAT_P8 = 113,</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; DXGI_FORMAT_A8P8 = 114,</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; DXGI_FORMAT_B4G4R4A4_UNORM = 115,</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; DXGI_FORMAT_P208 = 130,</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; DXGI_FORMAT_V208 = 131,</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; DXGI_FORMAT_V408 = 132,</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; DXGI_FORMAT_ASTC_4X4_TYPELESS = 133,</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; DXGI_FORMAT_ASTC_4X4_UNORM = 134,</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; DXGI_FORMAT_ASTC_4X4_UNORM_SRGB = 135,</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; DXGI_FORMAT_ASTC_5X4_TYPELESS = 137,</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; DXGI_FORMAT_ASTC_5X4_UNORM = 138,</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; DXGI_FORMAT_ASTC_5X4_UNORM_SRGB = 139,</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; DXGI_FORMAT_ASTC_5X5_TYPELESS = 141,</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; DXGI_FORMAT_ASTC_5X5_UNORM = 142,</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; DXGI_FORMAT_ASTC_5X5_UNORM_SRGB = 143,</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; DXGI_FORMAT_ASTC_6X5_TYPELESS = 145,</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; DXGI_FORMAT_ASTC_6X5_UNORM = 146,</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; DXGI_FORMAT_ASTC_6X5_UNORM_SRGB = 147,</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; DXGI_FORMAT_ASTC_6X6_TYPELESS = 149,</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; DXGI_FORMAT_ASTC_6X6_UNORM = 150,</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; DXGI_FORMAT_ASTC_6X6_UNORM_SRGB = 151,</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; DXGI_FORMAT_ASTC_8X5_TYPELESS = 153,</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; DXGI_FORMAT_ASTC_8X5_UNORM = 154,</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; DXGI_FORMAT_ASTC_8X5_UNORM_SRGB = 155,</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; DXGI_FORMAT_ASTC_8X6_TYPELESS = 157,</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; DXGI_FORMAT_ASTC_8X6_UNORM = 158,</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; DXGI_FORMAT_ASTC_8X6_UNORM_SRGB = 159,</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; DXGI_FORMAT_ASTC_8X8_TYPELESS = 161,</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; DXGI_FORMAT_ASTC_8X8_UNORM = 162,</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; DXGI_FORMAT_ASTC_8X8_UNORM_SRGB = 163,</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; DXGI_FORMAT_ASTC_10X5_TYPELESS = 165,</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; DXGI_FORMAT_ASTC_10X5_UNORM = 166,</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; DXGI_FORMAT_ASTC_10X5_UNORM_SRGB = 167,</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; DXGI_FORMAT_ASTC_10X6_TYPELESS = 169,</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; DXGI_FORMAT_ASTC_10X6_UNORM = 170,</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; DXGI_FORMAT_ASTC_10X6_UNORM_SRGB = 171,</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; DXGI_FORMAT_ASTC_10X8_TYPELESS = 173,</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; DXGI_FORMAT_ASTC_10X8_UNORM = 174,</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; DXGI_FORMAT_ASTC_10X8_UNORM_SRGB = 175,</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; DXGI_FORMAT_ASTC_10X10_TYPELESS = 177,</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; DXGI_FORMAT_ASTC_10X10_UNORM = 178,</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; DXGI_FORMAT_ASTC_10X10_UNORM_SRGB = 179,</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; DXGI_FORMAT_ASTC_12X10_TYPELESS = 181,</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; DXGI_FORMAT_ASTC_12X10_UNORM = 182,</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; DXGI_FORMAT_ASTC_12X10_UNORM_SRGB = 183,</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; DXGI_FORMAT_ASTC_12X12_TYPELESS = 185,</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; DXGI_FORMAT_ASTC_12X12_UNORM = 186,</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; DXGI_FORMAT_ASTC_12X12_UNORM_SRGB = 187,</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; DXGI_FORMAT_FORCE_UINT = 0xffffffffUL</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; };</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">enum</span> dxgi_format_gli</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; DXGI_FORMAT_R64_UINT_GLI = 1,</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; DXGI_FORMAT_R64_SINT_GLI,</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; DXGI_FORMAT_R64_FLOAT_GLI,</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; DXGI_FORMAT_R64G64_UINT_GLI,</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; DXGI_FORMAT_R64G64_SINT_GLI,</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; DXGI_FORMAT_R64G64_FLOAT_GLI,</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; DXGI_FORMAT_R64G64B64_UINT_GLI,</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; DXGI_FORMAT_R64G64B64_SINT_GLI,</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; DXGI_FORMAT_R64G64B64_FLOAT_GLI,</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; DXGI_FORMAT_R64G64B64A64_UINT_GLI,</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; DXGI_FORMAT_R64G64B64A64_SINT_GLI,</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; DXGI_FORMAT_R64G64B64A64_FLOAT_GLI,</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; </div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; DXGI_FORMAT_RG4_UNORM_GLI,</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; DXGI_FORMAT_RGBA4_UNORM_GLI,</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; DXGI_FORMAT_R5G6B5_UNORM_GLI,</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; DXGI_FORMAT_R5G5B5A1_UNORM_GLI,</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; DXGI_FORMAT_A1B5G5R5_UNORM_GLI,</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; </div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; DXGI_FORMAT_R8_SRGB_GLI,</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; DXGI_FORMAT_R8_USCALED_GLI,</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; DXGI_FORMAT_R8_SSCALED_GLI,</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; </div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; DXGI_FORMAT_R8G8_SRGB_GLI,</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; DXGI_FORMAT_R8G8_USCALED_GLI,</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; DXGI_FORMAT_R8G8_SSCALED_GLI,</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; </div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; DXGI_FORMAT_R8G8B8_UNORM_GLI,</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; DXGI_FORMAT_R8G8B8_SNORM_GLI,</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; DXGI_FORMAT_R8G8B8_USCALED_GLI,</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; DXGI_FORMAT_R8G8B8_SSCALED_GLI,</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; DXGI_FORMAT_R8G8B8_UINT_GLI,</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; DXGI_FORMAT_R8G8B8_SINT_GLI,</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; DXGI_FORMAT_R8G8B8_SRGB_GLI,</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; </div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; DXGI_FORMAT_B8G8R8_UNORM_GLI,</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; DXGI_FORMAT_B8G8R8_SNORM_GLI,</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; DXGI_FORMAT_B8G8R8_USCALED_GLI,</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; DXGI_FORMAT_B8G8R8_SSCALED_GLI,</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; DXGI_FORMAT_B8G8R8_UINT_GLI,</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; DXGI_FORMAT_B8G8R8_SINT_GLI,</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; DXGI_FORMAT_B8G8R8_SRGB_GLI,</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; </div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; DXGI_FORMAT_R8G8B8A8_USCALED_GLI,</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; DXGI_FORMAT_R8G8B8A8_SSCALED_GLI,</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; </div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; DXGI_FORMAT_B8G8R8A8_SNORM_GLI,</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; DXGI_FORMAT_B8G8R8A8_USCALED_GLI,</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; DXGI_FORMAT_B8G8R8A8_SSCALED_GLI,</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; DXGI_FORMAT_B8G8R8A8_UINT_GLI,</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; DXGI_FORMAT_B8G8R8A8_SINT_GLI,</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; </div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; DXGI_FORMAT_R8G8B8A8_PACK_UNORM_GLI,</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; DXGI_FORMAT_R8G8B8A8_PACK_SNORM_GLI,</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; DXGI_FORMAT_R8G8B8A8_PACK_USCALED_GLI,</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; DXGI_FORMAT_R8G8B8A8_PACK_SSCALED_GLI,</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; DXGI_FORMAT_R8G8B8A8_PACK_UINT_GLI,</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; DXGI_FORMAT_R8G8B8A8_PACK_SINT_GLI,</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; DXGI_FORMAT_R8G8B8A8_PACK_SRGB_GLI,</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; </div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; DXGI_FORMAT_R10G10B10A2_SNORM_GLI,</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; DXGI_FORMAT_R10G10B10A2_USCALED_GLI,</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; DXGI_FORMAT_R10G10B10A2_SSCALED_GLI,</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; DXGI_FORMAT_R10G10B10A2_SINT_GLI,</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; </div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; DXGI_FORMAT_B10G10R10A2_UNORM_GLI,</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; DXGI_FORMAT_B10G10R10A2_SNORM_GLI,</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; DXGI_FORMAT_B10G10R10A2_USCALED_GLI,</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; DXGI_FORMAT_B10G10R10A2_SSCALED_GLI,</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; DXGI_FORMAT_B10G10R10A2_UINT_GLI,</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; DXGI_FORMAT_B10G10R10A2_SINT_GLI,</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; </div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; DXGI_FORMAT_R16_USCALED_GLI,</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; DXGI_FORMAT_R16_SSCALED_GLI,</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; DXGI_FORMAT_R16G16_USCALED_GLI,</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; DXGI_FORMAT_R16G16_SSCALED_GLI,</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; </div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; DXGI_FORMAT_R16G16B16_UNORM_GLI,</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; DXGI_FORMAT_R16G16B16_SNORM_GLI,</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; DXGI_FORMAT_R16G16B16_USCALED_GLI,</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; DXGI_FORMAT_R16G16B16_SSCALED_GLI,</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; DXGI_FORMAT_R16G16B16_UINT_GLI,</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; DXGI_FORMAT_R16G16B16_SINT_GLI,</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; DXGI_FORMAT_R16G16B16_FLOAT_GLI,</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; </div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; DXGI_FORMAT_R16G16B16A16_USCALED_GLI,</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; DXGI_FORMAT_R16G16B16A16_SSCALED_GLI,</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; </div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; DXGI_FORMAT_S8_UINT_GLI,</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; DXGI_FORMAT_D16_UNORM_S8_UINT_GLI,</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; DXGI_FORMAT_D24_UNORM_GLI,</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; </div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; DXGI_FORMAT_L8_UNORM_GLI,</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; DXGI_FORMAT_A8_UNORM_GLI,</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; DXGI_FORMAT_LA8_UNORM_GLI,</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; DXGI_FORMAT_L16_UNORM_GLI,</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; DXGI_FORMAT_A16_UNORM_GLI,</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; DXGI_FORMAT_LA16_UNORM_GLI,</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; </div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; DXGI_FORMAT_R3G3B2_UNORM_GLI,</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; </div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; DXGI_FORMAT_BC1_RGB_UNORM_GLI,</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; DXGI_FORMAT_BC1_RGB_SRGB_GLI,</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; DXGI_FORMAT_RGB_ETC2_UNORM_GLI,</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; DXGI_FORMAT_RGB_ETC2_SRGB_GLI,</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; DXGI_FORMAT_RGBA_ETC2_A1_UNORM_GLI,</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; DXGI_FORMAT_RGBA_ETC2_A1_SRGB_GLI,</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; DXGI_FORMAT_RGBA_ETC2_UNORM_GLI,</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; DXGI_FORMAT_RGBA_ETC2_SRGB_GLI,</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; DXGI_FORMAT_R11_EAC_UNORM_GLI,</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; DXGI_FORMAT_R11_EAC_SNORM_GLI,</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; DXGI_FORMAT_RG11_EAC_UNORM_GLI,</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; DXGI_FORMAT_RG11_EAC_SNORM_GLI,</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; </div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; DXGI_FORMAT_RGB_PVRTC1_8X8_UNORM_GLI,</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; DXGI_FORMAT_RGB_PVRTC1_8X8_SRGB_GLI,</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; DXGI_FORMAT_RGB_PVRTC1_16X8_UNORM_GLI,</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; DXGI_FORMAT_RGB_PVRTC1_16X8_SRGB_GLI,</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; DXGI_FORMAT_RGBA_PVRTC1_8X8_UNORM_GLI,</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; DXGI_FORMAT_RGBA_PVRTC1_8X8_SRGB_GLI,</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; DXGI_FORMAT_RGBA_PVRTC1_16X8_UNORM_GLI,</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; DXGI_FORMAT_RGBA_PVRTC1_16X8_SRGB_GLI,</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; DXGI_FORMAT_RGBA_PVRTC2_8X8_UNORM_GLI,</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; DXGI_FORMAT_RGBA_PVRTC2_8X8_SRGB_GLI,</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; DXGI_FORMAT_RGBA_PVRTC2_16X8_UNORM_GLI,</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; DXGI_FORMAT_RGBA_PVRTC2_16X8_SRGB_GLI,</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; </div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; DXGI_FORMAT_RGB_ETC_UNORM_GLI,</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; DXGI_FORMAT_RGB_ATC_UNORM_GLI,</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; DXGI_FORMAT_RGBA_ATCA_UNORM_GLI,</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; DXGI_FORMAT_RGBA_ATCI_UNORM_GLI,</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; };</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; </div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keyword">union </span>dxgiFormat</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; {</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; dxgiFormat()</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; : DDS(DXGI_FORMAT_UNKNOWN)</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; {}</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; </div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; dxgiFormat(dxgi_format_dds DDS)</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; : DDS(DDS)</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; {}</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; dxgiFormat(dxgi_format_gli GLI)</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; : GLI(GLI)</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; {}</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; </div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; dxgi_format_dds DDS;</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; dxgi_format_gli GLI;</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; };</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; </div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keyword">enum</span> ddpf</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; {</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; DDPF_ALPHAPIXELS = 0x1,</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; DDPF_ALPHA = 0x2,</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; DDPF_FOURCC = 0x4,</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; DDPF_RGB = 0x40,</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; DDPF_YUV = 0x200,</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; DDPF_LUMINANCE = 0x20000,</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; DDPF_LUMINANCE_ALPHA = DDPF_LUMINANCE | DDPF_ALPHA,</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; DDPF_RGBAPIXELS = DDPF_RGB | DDPF_ALPHAPIXELS,</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; DDPF_RGBA = DDPF_RGB | DDPF_ALPHA,</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; DDPF_LUMINANCE_ALPHAPIXELS = DDPF_LUMINANCE | DDPF_ALPHAPIXELS,</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; };</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keyword">struct </span><a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a></div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; {</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; ddpf DDPixelFormat;</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; d3dfmt D3DFormat;</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; dxgiFormat DXGIFormat;</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; glm::u32vec4 Mask;</div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; };</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <a class="code" href="a00001.html">dx</a>();</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> <span class="keyword">const</span>&amp; <a class="code" href="a00001.html#ac5a07c3371b0ea14fac8b0746e05c414">translate</a>(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">gli::format</a> Format) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">gli::format</a> <a class="code" href="a00001.html#a106d0ef4c65251c1c522e965af75678d">find</a>(d3dfmt FourCC) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">gli::format</a> <a class="code" href="a00001.html#a106d0ef4c65251c1c522e965af75678d">find</a>(d3dfmt FourCC, dxgiFormat Format) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; std::array&lt;format, FORMAT_COUNT&gt; Translation;</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; };</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00074.html#a5a607dedd5d94ffbb3112d9a4ea793f0">is_dds_ext</a>(<a class="code" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">target</a> Target, <a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format);</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="preprocessor">#include &quot;./core/dx.inl&quot;</span></div>
<div class="ttc" id="a00074_html_a387137c43ed9616d39ba90e890d181eb"><div class="ttname"><a href="a00074.html#a387137c43ed9616d39ba90e890d181eb">gli::format</a></div><div class="ttdeci">format</div><div class="ttdoc">Texture data format. </div><div class="ttdef"><b>Definition:</b> <a href="a00033_source.html#l00012">format.hpp:12</a></div></div>
<div class="ttc" id="a00001_html"><div class="ttname"><a href="a00001.html">gli::dx</a></div><div class="ttdoc">Translation class to convert GLI enums into DirectX enums. </div><div class="ttdef"><b>Definition:</b> <a href="a00028_source.html#l00013">dx.hpp:13</a></div></div>
<div class="ttc" id="a00001_html_a106d0ef4c65251c1c522e965af75678d"><div class="ttname"><a href="a00001.html#a106d0ef4c65251c1c522e965af75678d">gli::dx::find</a></div><div class="ttdeci">gli::format find(d3dfmt FourCC) const </div><div class="ttdoc">Convert a Direct3D 9 format into a GLI format. </div></div>
<div class="ttc" id="a00061_html"><div class="ttname"><a href="a00061.html">target.hpp</a></div><div class="ttdoc">Include to use the target enum and query properties of targets. </div></div>
<div class="ttc" id="a00001_html_ac5a07c3371b0ea14fac8b0746e05c414"><div class="ttname"><a href="a00001.html#ac5a07c3371b0ea14fac8b0746e05c414">gli::dx::translate</a></div><div class="ttdeci">format const &amp; translate(gli::format Format) const </div><div class="ttdoc">Convert GLI formats into Direct3D formats. </div></div>
<div class="ttc" id="a00074_html_a5d2c023108742a1ce78ba9823c06ea35"><div class="ttname"><a href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">gli::target</a></div><div class="ttdeci">target</div><div class="ttdoc">Texture target: type/shape of the texture storage_linear. </div><div class="ttdef"><b>Definition:</b> <a href="a00061_source.html#l00009">target.hpp:9</a></div></div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
<div class="ttc" id="a00033_html"><div class="ttname"><a href="a00033.html">format.hpp</a></div><div class="ttdoc">Include to use the format enum and query properties of formats. </div></div>
<div class="ttc" id="a00074_html_a5a607dedd5d94ffbb3112d9a4ea793f0"><div class="ttname"><a href="a00074.html#a5a607dedd5d94ffbb3112d9a4ea793f0">gli::is_dds_ext</a></div><div class="ttdeci">bool is_dds_ext(target Target, format Format)</div><div class="ttdoc">Evaluate whether a target and format combinaison is only supported by the DDS container through GLI D...</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

118
external/gli/doc/api/a00029.html vendored 100644
View File

@ -0,0 +1,118 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: file.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li><li class="navelem"><a class="el" href="dir_2c398834837487e57bd8c53ea39543b9.html">core</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
<div class="headertitle">
<div class="title">file.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>File helper functions.
<a href="#details">More...</a></p>
<p><a href="a00029_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:a00074"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">gli</a></td></tr>
<tr class="memdesc:a00074"><td class="mdescLeft">&#160;</td><td class="mdescRight">Namespace where all the classes and functions provided by GLI are exposed. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>File helper functions. </p>
<p>Definition in file <a class="el" href="a00029_source.html">file.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,114 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: file.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li><li class="navelem"><a class="el" href="dir_2c398834837487e57bd8c53ea39543b9.html">core</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">file.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00029.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;cstdio&gt;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a>{</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">namespace </span>detail</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;{</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; FILE* open_file(<span class="keyword">const</span> <span class="keywordtype">char</span> *Filename, <span class="keyword">const</span> <span class="keywordtype">char</span> *mode);</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;./file.inl&quot;</span></div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

125
external/gli/doc/api/a00030.html vendored 100644
View File

@ -0,0 +1,125 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: filter.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li><li class="navelem"><a class="el" href="dir_2c398834837487e57bd8c53ea39543b9.html">core</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">filter.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Include to use filter enum, to select filtering methods.
<a href="#details">More...</a></p>
<p><a href="a00030_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:a00074"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">gli</a></td></tr>
<tr class="memdesc:a00074"><td class="mdescLeft">&#160;</td><td class="mdescRight">Namespace where all the classes and functions provided by GLI are exposed. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a610876e02cee64e29fe4376ffeb6b9b9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a610876e02cee64e29fe4376ffeb6b9b9"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> <tr class="memdesc:a610876e02cee64e29fe4376ffeb6b9b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Texture filtring modes. <br /></td></tr>
<tr class="separator:a610876e02cee64e29fe4376ffeb6b9b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Include to use filter enum, to select filtering methods. </p>
<p>Definition in file <a class="el" href="a00030_source.html">filter.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,122 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: filter.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li><li class="navelem"><a class="el" href="dir_2c398834837487e57bd8c53ea39543b9.html">core</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">filter.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00030.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;{</div>
<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9"> 9</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; {</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; FILTER_NONE = 0,</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; FILTER_NEAREST, FILTER_FIRST = FILTER_NEAREST,</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; FILTER_LINEAR, FILTER_LAST = FILTER_LINEAR</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; };</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">enum</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; {</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; FILTER_COUNT = FILTER_LAST - FILTER_FIRST + 1,</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; FILTER_INVALID = -1</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; };</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;filter.inl&quot;</span></div>
<div class="ttc" id="a00074_html_a610876e02cee64e29fe4376ffeb6b9b9"><div class="ttname"><a href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">gli::filter</a></div><div class="ttdeci">filter</div><div class="ttdoc">Texture filtring modes. </div><div class="ttdef"><b>Definition:</b> <a href="a00030_source.html#l00009">filter.hpp:9</a></div></div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,493 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: filter_compute.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li><li class="navelem"><a class="el" href="dir_2c398834837487e57bd8c53ea39543b9.html">core</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">filter_compute.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00030.html">filter.hpp</a>&quot;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;coord.hpp&quot;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;glm/gtc/integer.hpp&gt;</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a>{</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span>detail</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keyword">enum</span> dimension</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; {</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; DIMENSION_1D,</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; DIMENSION_2D,</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; DIMENSION_3D</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; };</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">struct </span>interpolate</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; {</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">float</span> type;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; };</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">struct </span>interpolate&lt;double&gt;</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; {</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">double</span> type;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; };</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">struct </span>interpolate&lt;long double&gt;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; {</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">long</span> <span class="keywordtype">double</span> type;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; };</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">template</span> &lt;dimension Dimension, <span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> <span class="keywordtype">int</span>erpolate_type, <span class="keyword">typename</span> normalized_type, <span class="keyword">typename</span> fetch_type, <span class="keyword">typename</span> texel_type&gt;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">struct </span>filterBase</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; {</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> texture_type::size_type size_type;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> texture_type::extent_type extent_type;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">typedef</span> texel_type(*filterFunc)(</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; texture_type <span class="keyword">const</span> &amp; Texture, fetch_type Fetch, normalized_type <span class="keyword">const</span> &amp; SampleCoordWrap,</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; size_type Layer, size_type Face, interpolate_type Level,</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; texel_type <span class="keyword">const</span> &amp; BorderColor);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; };</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">template</span> &lt;dimension Dimension, <span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> <span class="keywordtype">int</span>erpolate_type, <span class="keyword">typename</span> normalized_type, <span class="keyword">typename</span> fetch_type, <span class="keyword">typename</span> texel_type, <span class="keywordtype">bool</span> is_<span class="keywordtype">float</span> = true, <span class="keywordtype">bool</span> support_border = true&gt;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">struct </span>nearest : <span class="keyword">public</span> filterBase&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">typedef</span> filterBase&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt; base_type;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::size_type size_type;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::extent_type extent_type;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">typedef</span> coord_nearest&lt;extent_type, normalized_type&gt; coord_type;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">static</span> texel_type call(texture_type <span class="keyword">const</span> &amp; Texture, fetch_type Fetch, normalized_type <span class="keyword">const</span> &amp; SampleCoordWrap, size_type Layer, size_type Face, size_type Level, texel_type <span class="keyword">const</span> &amp; BorderColor)</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; {</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; extent_type <span class="keyword">const</span> TexelDim(Texture.extent(Level));</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; normalized_type <span class="keyword">const</span> TexelLast(normalized_type(TexelDim) - normalized_type(1));</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">//extent_type const TexelCoord(SampleCoordWrap * TexelLast + interpolate_type(0.5));</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; extent_type <span class="keyword">const</span> TexelCoord = extent_type(round(SampleCoordWrap * TexelLast));</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">typename</span> extent_type::bool_type <span class="keyword">const</span> UseTexelCoord = in_interval(TexelCoord, extent_type(0), TexelDim - 1);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; texel_type Texel(BorderColor);</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span>(all(UseTexelCoord))</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; Texel = Fetch(Texture, TexelCoord, Layer, Face, Level);</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> Texel;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; };</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">template</span> &lt;dimension Dimension, <span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> <span class="keywordtype">int</span>erpolate_type, <span class="keyword">typename</span> normalized_type, <span class="keyword">typename</span> fetch_type, <span class="keyword">typename</span> texel_type&gt;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">struct </span>nearest&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, true, false&gt; : <span class="keyword">public</span> filterBase&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; {</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">typedef</span> filterBase&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt; base_type;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::size_type size_type;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::extent_type extent_type;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">typedef</span> coord_nearest&lt;extent_type, normalized_type&gt; coord_type;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">static</span> texel_type call(texture_type <span class="keyword">const</span> &amp; Texture, fetch_type Fetch, normalized_type <span class="keyword">const</span> &amp; SampleCoordWrap, size_type Layer, size_type Face, size_type Level, texel_type <span class="keyword">const</span> &amp; BorderColor)</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; normalized_type <span class="keyword">const</span> TexelLast(normalized_type(Texture.extent(Level)) - normalized_type(1));</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; extent_type <span class="keyword">const</span> TexelCoord(SampleCoordWrap * TexelLast + interpolate_type(0.5));</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">//extent_type const TexelCoord = extent_type(round(SampleCoordWrap * TexelLast));</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">return</span> Fetch(Texture, TexelCoord, Layer, Face, Level);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; };</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">template</span> &lt;dimension Dimension, <span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> <span class="keywordtype">int</span>erpolate_type, <span class="keyword">typename</span> normalized_type, <span class="keyword">typename</span> fetch_type, <span class="keyword">typename</span> texel_type, <span class="keywordtype">bool</span> is_<span class="keywordtype">float</span> = true, <span class="keywordtype">bool</span> support_border = true&gt;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">struct </span>linear : <span class="keyword">public</span> filterBase&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">typedef</span> filterBase&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt; base_type;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::size_type size_type;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::extent_type extent_type;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">static</span> texel_type call(texture_type <span class="keyword">const</span> &amp; Texture, fetch_type Fetch, normalized_type <span class="keyword">const</span> &amp; SampleCoordWrap, size_type Layer, size_type Face, size_type Level, texel_type <span class="keyword">const</span>&amp; BorderColor)</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">return</span> texel_type(0);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; };</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> <span class="keywordtype">int</span>erpolate_type, <span class="keyword">typename</span> normalized_type, <span class="keyword">typename</span> fetch_type, <span class="keyword">typename</span> texel_type&gt;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">struct </span>linear&lt;DIMENSION_1D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, true, true&gt; : <span class="keyword">public</span> filterBase&lt;DIMENSION_1D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">typedef</span> filterBase&lt;DIMENSION_1D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt; base_type;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::size_type size_type;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::extent_type extent_type;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">typedef</span> coord_linear_border&lt;extent_type, normalized_type&gt; coord_type;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">static</span> texel_type call(texture_type <span class="keyword">const</span> &amp; Texture, fetch_type Fetch, normalized_type <span class="keyword">const</span> &amp; SampleCoordWrap, size_type Layer, size_type Face, size_type Level, texel_type <span class="keyword">const</span> &amp; BorderColor)</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; {</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; coord_type <span class="keyword">const</span>&amp; Coord = make_coord_linear_border(Texture.extent(Level), SampleCoordWrap);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; texel_type Texel0(BorderColor);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span>(Coord.UseTexelFloor.s)</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; Texel0 = Fetch(Texture, extent_type(Coord.TexelFloor.s), Layer, Face, Level);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; texel_type Texel1(BorderColor);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">if</span>(Coord.UseTexelCeil.s)</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; Texel1 = Fetch(Texture, extent_type(Coord.TexelCeil.s), Layer, Face, Level);</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> mix(Texel0, Texel1, Coord.Blend.s);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; };</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> <span class="keywordtype">int</span>erpolate_type, <span class="keyword">typename</span> normalized_type, <span class="keyword">typename</span> fetch_type, <span class="keyword">typename</span> texel_type&gt;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">struct </span>linear&lt;DIMENSION_1D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, true, false&gt; : <span class="keyword">public</span> filterBase&lt;DIMENSION_1D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">typedef</span> filterBase&lt;DIMENSION_1D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt; base_type;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::size_type size_type;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::extent_type extent_type;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">typedef</span> coord_linear&lt;extent_type, normalized_type&gt; coord_type;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">static</span> texel_type call(texture_type <span class="keyword">const</span> &amp; Texture, fetch_type Fetch, normalized_type <span class="keyword">const</span> &amp; SampleCoordWrap, size_type Layer, size_type Face, size_type Level, texel_type <span class="keyword">const</span> &amp; BorderColor)</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; coord_type <span class="keyword">const</span>&amp; Coord = make_coord_linear(Texture.extent(Level), SampleCoordWrap);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; texel_type <span class="keyword">const</span> Texel0 = Fetch(Texture, extent_type(Coord.TexelFloor.s), Layer, Face, Level);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; texel_type <span class="keyword">const</span> Texel1 = Fetch(Texture, extent_type(Coord.TexelCeil.s), Layer, Face, Level);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> mix(Texel0, Texel1, Coord.Blend.s);</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; };</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> <span class="keywordtype">int</span>erpolate_type, <span class="keyword">typename</span> normalized_type, <span class="keyword">typename</span> fetch_type, <span class="keyword">typename</span> texel_type&gt;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">struct </span>linear&lt;DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, true, true&gt; : <span class="keyword">public</span> filterBase&lt;DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">typedef</span> filterBase&lt;DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt; base_type;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::size_type size_type;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::extent_type extent_type;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">typedef</span> coord_linear_border&lt;extent_type, normalized_type&gt; coord_type;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">static</span> texel_type call(texture_type <span class="keyword">const</span>&amp; Texture, fetch_type Fetch, normalized_type <span class="keyword">const</span>&amp; SampleCoordWrap, size_type Layer, size_type Face, size_type Level, texel_type <span class="keyword">const</span>&amp; BorderColor)</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; {</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; coord_type <span class="keyword">const</span>&amp; Coord = make_coord_linear_border(Texture.extent(Level), SampleCoordWrap);</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; texel_type Texel00(BorderColor);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">if</span>(Coord.UseTexelFloor.s &amp;&amp; Coord.UseTexelFloor.t)</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; Texel00 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelFloor.t), Layer, Face, Level);</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; texel_type Texel10(BorderColor);</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span>(Coord.UseTexelCeil.s &amp;&amp; Coord.UseTexelFloor.t)</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; Texel10 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelFloor.t), Layer, Face, Level);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; texel_type Texel11(BorderColor);</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">if</span>(Coord.UseTexelCeil.s &amp;&amp; Coord.UseTexelCeil.t)</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; Texel11 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelCeil.t), Layer, Face, Level);</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; texel_type Texel01(BorderColor);</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span>(Coord.UseTexelFloor.s &amp;&amp; Coord.UseTexelCeil.t)</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; Texel01 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelCeil.t), Layer, Face, Level);</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; texel_type <span class="keyword">const</span> ValueA(mix(Texel00, Texel10, Coord.Blend.s));</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; texel_type <span class="keyword">const</span> ValueB(mix(Texel01, Texel11, Coord.Blend.s));</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> mix(ValueA, ValueB, Coord.Blend.t);</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; };</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> <span class="keywordtype">int</span>erpolate_type, <span class="keyword">typename</span> normalized_type, <span class="keyword">typename</span> fetch_type, <span class="keyword">typename</span> texel_type&gt;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">struct </span>linear&lt;DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, true, false&gt; : <span class="keyword">public</span> filterBase&lt;DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">typedef</span> filterBase&lt;DIMENSION_2D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt; base_type;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::size_type size_type;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::extent_type extent_type;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">typedef</span> coord_linear&lt;extent_type, normalized_type&gt; coord_type;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">static</span> texel_type call(texture_type <span class="keyword">const</span>&amp; Texture, fetch_type Fetch, normalized_type <span class="keyword">const</span>&amp; SampleCoordWrap, size_type Layer, size_type Face, size_type Level, texel_type <span class="keyword">const</span>&amp; BorderColor)</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; coord_type <span class="keyword">const</span>&amp; Coord = make_coord_linear(Texture.extent(Level), SampleCoordWrap);</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; texel_type <span class="keyword">const</span>&amp; Texel00 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelFloor.t), Layer, Face, Level);</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; texel_type <span class="keyword">const</span>&amp; Texel10 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelFloor.t), Layer, Face, Level);</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; texel_type <span class="keyword">const</span>&amp; Texel11 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelCeil.t), Layer, Face, Level);</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; texel_type <span class="keyword">const</span>&amp; Texel01 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelCeil.t), Layer, Face, Level);</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; texel_type <span class="keyword">const</span> ValueA(mix(Texel00, Texel10, Coord.Blend.s));</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; texel_type <span class="keyword">const</span> ValueB(mix(Texel01, Texel11, Coord.Blend.s));</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> mix(ValueA, ValueB, Coord.Blend.t);</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; };</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> <span class="keywordtype">int</span>erpolate_type, <span class="keyword">typename</span> normalized_type, <span class="keyword">typename</span> fetch_type, <span class="keyword">typename</span> texel_type&gt;</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">struct </span>linear&lt;DIMENSION_3D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, true, true&gt; : <span class="keyword">public</span> filterBase&lt;DIMENSION_3D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt;</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">typedef</span> filterBase&lt;DIMENSION_3D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt; base_type;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::size_type size_type;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::extent_type extent_type;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">typedef</span> coord_linear_border&lt;extent_type, normalized_type&gt; coord_type;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">static</span> texel_type call(texture_type <span class="keyword">const</span>&amp; Texture, fetch_type Fetch, normalized_type <span class="keyword">const</span>&amp; SampleCoordWrap, size_type Layer, size_type Face, size_type Level, texel_type <span class="keyword">const</span>&amp; BorderColor)</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; {</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; coord_type <span class="keyword">const</span>&amp; Coord = make_coord_linear_border(Texture.extent(Level), SampleCoordWrap);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; texel_type Texel000(BorderColor);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">if</span>(Coord.UseTexelFloor.s &amp;&amp; Coord.UseTexelFloor.t &amp;&amp; Coord.UseTexelFloor.p)</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; Texel000 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelFloor.t, Coord.TexelFloor.p), Layer, Face, Level);</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; texel_type Texel100(BorderColor);</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span>(Coord.UseTexelCeil.s &amp;&amp; Coord.UseTexelFloor.t &amp;&amp; Coord.UseTexelFloor.p)</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; Texel100 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelFloor.t, Coord.TexelFloor.p), Layer, Face, Level);</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; texel_type Texel110(BorderColor);</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">if</span>(Coord.UseTexelCeil.s &amp;&amp; Coord.UseTexelCeil.t &amp;&amp; Coord.UseTexelFloor.p)</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; Texel110 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelCeil.t, Coord.TexelFloor.p), Layer, Face, Level);</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; texel_type Texel010(BorderColor);</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">if</span>(Coord.UseTexelFloor.s &amp;&amp; Coord.UseTexelCeil.t &amp;&amp; Coord.UseTexelFloor.p)</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; Texel010 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelCeil.t, Coord.TexelFloor.p), Layer, Face, Level);</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; texel_type Texel001(BorderColor);</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span> (Coord.UseTexelFloor.s &amp;&amp; Coord.UseTexelFloor.t &amp;&amp; Coord.UseTexelCeil.p)</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; Texel001 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelFloor.t, Coord.TexelCeil.p), Layer, Face, Level);</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; texel_type Texel101(BorderColor);</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span>(Coord.UseTexelCeil.s &amp;&amp; Coord.UseTexelFloor.t &amp;&amp; Coord.UseTexelCeil.p)</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; Texel101 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelFloor.t, Coord.TexelCeil.p), Layer, Face, Level);</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; texel_type Texel111(BorderColor);</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">if</span>(Coord.UseTexelCeil.s &amp;&amp; Coord.UseTexelCeil.t &amp;&amp; Coord.UseTexelCeil.p)</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; Texel111 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelCeil.t, Coord.TexelCeil.p), Layer, Face, Level);</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; texel_type Texel011(BorderColor);</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">if</span>(Coord.UseTexelFloor.s &amp;&amp; Coord.UseTexelCeil.t &amp;&amp; Coord.UseTexelCeil.p)</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; Texel011 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelCeil.t, Coord.TexelCeil.p), Layer, Face, Level);</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; texel_type <span class="keyword">const</span> ValueA(mix(Texel000, Texel100, Coord.Blend.s));</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; texel_type <span class="keyword">const</span> ValueB(mix(Texel010, Texel110, Coord.Blend.s));</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; texel_type <span class="keyword">const</span> ValueC(mix(Texel001, Texel101, Coord.Blend.s));</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; texel_type <span class="keyword">const</span> ValueD(mix(Texel011, Texel111, Coord.Blend.s));</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; texel_type <span class="keyword">const</span> ValueE(mix(ValueA, ValueB, Coord.Blend.t));</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; texel_type <span class="keyword">const</span> ValueF(mix(ValueC, ValueD, Coord.Blend.t));</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> mix(ValueE, ValueF, Coord.Blend.p);</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; };</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> <span class="keywordtype">int</span>erpolate_type, <span class="keyword">typename</span> normalized_type, <span class="keyword">typename</span> fetch_type, <span class="keyword">typename</span> texel_type&gt;</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">struct </span>linear&lt;DIMENSION_3D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, true, false&gt; : <span class="keyword">public</span> filterBase&lt;DIMENSION_3D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt;</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">typedef</span> filterBase&lt;DIMENSION_3D, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt; base_type;</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::size_type size_type;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::extent_type extent_type;</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">typedef</span> coord_linear&lt;extent_type, normalized_type&gt; coord_type;</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keyword">static</span> texel_type call(texture_type <span class="keyword">const</span> &amp; Texture, fetch_type Fetch, normalized_type <span class="keyword">const</span> &amp; SampleCoordWrap, size_type Layer, size_type Face, size_type Level, texel_type <span class="keyword">const</span> &amp; BorderColor)</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; {</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; coord_type <span class="keyword">const</span> &amp; Coord = make_coord_linear(Texture.extent(Level), SampleCoordWrap);</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; texel_type <span class="keyword">const</span> &amp; Texel000 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelFloor.t, Coord.TexelFloor.p), Layer, Face, Level);</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; texel_type <span class="keyword">const</span> &amp; Texel100 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelFloor.t, Coord.TexelFloor.p), Layer, Face, Level);</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; texel_type <span class="keyword">const</span> &amp; Texel110 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelCeil.t, Coord.TexelFloor.p), Layer, Face, Level);</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; texel_type <span class="keyword">const</span> &amp; Texel010 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelCeil.t, Coord.TexelFloor.p), Layer, Face, Level);</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; texel_type <span class="keyword">const</span> &amp; Texel001 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelFloor.t, Coord.TexelCeil.p), Layer, Face, Level);</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; texel_type <span class="keyword">const</span> &amp; Texel101 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelFloor.t, Coord.TexelCeil.p), Layer, Face, Level);</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; texel_type <span class="keyword">const</span> &amp; Texel111 = Fetch(Texture, extent_type(Coord.TexelCeil.s, Coord.TexelCeil.t, Coord.TexelCeil.p), Layer, Face, Level);</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; texel_type <span class="keyword">const</span> &amp; Texel011 = Fetch(Texture, extent_type(Coord.TexelFloor.s, Coord.TexelCeil.t, Coord.TexelCeil.p), Layer, Face, Level);</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; texel_type <span class="keyword">const</span> ValueA(mix(Texel000, Texel100, Coord.Blend.s));</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; texel_type <span class="keyword">const</span> ValueB(mix(Texel010, Texel110, Coord.Blend.s));</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; texel_type <span class="keyword">const</span> ValueC(mix(Texel001, Texel101, Coord.Blend.s));</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; texel_type <span class="keyword">const</span> ValueD(mix(Texel011, Texel111, Coord.Blend.s));</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; texel_type <span class="keyword">const</span> ValueE(mix(ValueA, ValueB, Coord.Blend.t));</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; texel_type <span class="keyword">const</span> ValueF(mix(ValueC, ValueD, Coord.Blend.t));</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">return</span> mix(ValueE, ValueF, Coord.Blend.p);</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; };</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">template</span> &lt;dimension Dimension, <span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> <span class="keywordtype">int</span>erpolate_type, <span class="keyword">typename</span> normalized_type, <span class="keyword">typename</span> fetch_type, <span class="keyword">typename</span> texel_type, <span class="keywordtype">bool</span> is_<span class="keywordtype">float</span>, <span class="keywordtype">bool</span> support_border&gt;</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keyword">struct </span>nearest_mipmap_nearest : <span class="keyword">public</span> filterBase&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt;</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; {</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keyword">typedef</span> filterBase&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt; base_type;</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::size_type size_type;</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::extent_type extent_type;</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keyword">typedef</span> coord_linear_border&lt;extent_type, normalized_type&gt; coord_type;</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keyword">static</span> texel_type call(texture_type <span class="keyword">const</span> &amp; Texture, fetch_type Fetch, normalized_type <span class="keyword">const</span> &amp; SampleCoordWrap, size_type Layer, size_type Face, interpolate_type Level, texel_type <span class="keyword">const</span> &amp; BorderColor)</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; {</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">return</span> nearest&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, is_float, support_border&gt;::call(Texture, Fetch, SampleCoordWrap, Layer, Face, glm::iround(Level), BorderColor);</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; };</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">template</span> &lt;dimension Dimension, <span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> <span class="keywordtype">int</span>erpolate_type, <span class="keyword">typename</span> normalized_type, <span class="keyword">typename</span> fetch_type, <span class="keyword">typename</span> texel_type, <span class="keywordtype">bool</span> is_<span class="keywordtype">float</span>, <span class="keywordtype">bool</span> support_border&gt;</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">struct </span>nearest_mipmap_linear : <span class="keyword">public</span> filterBase&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt;</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; {</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">typedef</span> filterBase&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt; base_type;</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::size_type size_type;</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::extent_type extent_type;</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">typedef</span> coord_linear_border&lt;extent_type, normalized_type&gt; coord_type;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keyword">static</span> texel_type call(texture_type <span class="keyword">const</span> &amp; Texture, fetch_type Fetch, normalized_type <span class="keyword">const</span> &amp; SampleCoordWrap, size_type Layer, size_type Face, interpolate_type Level, texel_type <span class="keyword">const</span> &amp; BorderColor)</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; {</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; texel_type <span class="keyword">const</span> MinTexel = nearest&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, is_float, support_border&gt;::call(Texture, Fetch, SampleCoordWrap, Layer, Face, static_cast&lt;size_type&gt;(floor(Level)), BorderColor);</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; texel_type <span class="keyword">const</span> MaxTexel = nearest&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, is_float, support_border&gt;::call(Texture, Fetch, SampleCoordWrap, Layer, Face, static_cast&lt;size_type&gt;(ceil(Level)), BorderColor);</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">return</span> mix(MinTexel, MaxTexel, fract(Level));</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; }</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; };</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keyword">template</span> &lt;dimension Dimension, <span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> <span class="keywordtype">int</span>erpolate_type, <span class="keyword">typename</span> normalized_type, <span class="keyword">typename</span> fetch_type, <span class="keyword">typename</span> texel_type, <span class="keywordtype">bool</span> is_<span class="keywordtype">float</span>, <span class="keywordtype">bool</span> support_border&gt;</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keyword">struct </span>linear_mipmap_nearest : <span class="keyword">public</span> filterBase&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt;</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; {</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keyword">typedef</span> filterBase&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt; base_type;</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::size_type size_type;</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::extent_type extent_type;</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keyword">typedef</span> coord_linear_border&lt;extent_type, normalized_type&gt; coord_type;</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">static</span> texel_type call(texture_type <span class="keyword">const</span> &amp; Texture, fetch_type Fetch, normalized_type <span class="keyword">const</span> &amp; SampleCoordWrap, size_type Layer, size_type Face, interpolate_type Level, texel_type <span class="keyword">const</span> &amp; BorderColor)</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; {</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">return</span> linear&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, is_float, support_border&gt;::call(Texture, Fetch, SampleCoordWrap, Layer, Face, glm::iround(Level), BorderColor);</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; };</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">template</span> &lt;dimension Dimension, <span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> <span class="keywordtype">int</span>erpolate_type, <span class="keyword">typename</span> normalized_type, <span class="keyword">typename</span> fetch_type, <span class="keyword">typename</span> texel_type, <span class="keywordtype">bool</span> is_<span class="keywordtype">float</span>, <span class="keywordtype">bool</span> support_border&gt;</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">struct </span>linear_mipmap_linear : <span class="keyword">public</span> filterBase&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt;</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; {</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">typedef</span> filterBase&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type&gt; base_type;</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::size_type size_type;</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> base_type::extent_type extent_type;</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">typedef</span> coord_linear_border&lt;extent_type, normalized_type&gt; coord_type;</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keyword">static</span> texel_type call(texture_type <span class="keyword">const</span> &amp; Texture, fetch_type Fetch, normalized_type <span class="keyword">const</span> &amp; SampleCoordWrap, size_type Layer, size_type Face, interpolate_type Level, texel_type <span class="keyword">const</span> &amp; BorderColor)</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; {</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; size_type <span class="keyword">const</span> FloorLevel = <span class="keyword">static_cast&lt;</span>size_type<span class="keyword">&gt;</span>(floor(Level));</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; size_type <span class="keyword">const</span> CeilLevel = <span class="keyword">static_cast&lt;</span>size_type<span class="keyword">&gt;</span>(ceil(Level));</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; texel_type <span class="keyword">const</span> MinTexel = linear&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, is_float, support_border&gt;::call(Texture, Fetch, SampleCoordWrap, Layer, Face, FloorLevel, BorderColor);</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; texel_type <span class="keyword">const</span> MaxTexel = linear&lt;Dimension, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, is_float, support_border&gt;::call(Texture, Fetch, SampleCoordWrap, Layer, Face, CeilLevel, BorderColor);</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">return</span> mix(MinTexel, MaxTexel, fract(Level));</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; };</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> filter_type, dimension Dimensions, <span class="keyword">typename</span> texture_type, <span class="keyword">typename</span> <span class="keywordtype">int</span>erpolate_type, <span class="keyword">typename</span> normalized_type, <span class="keyword">typename</span> fetch_type, <span class="keyword">typename</span> texel_type, <span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keyword">inline</span> filter_type get_filter(<a class="code" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Mip, <a class="code" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Min, <span class="keywordtype">bool</span> Border)</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; {</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keyword">static</span> filter_type Table[][FILTER_COUNT][2] =</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; {</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; {</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; {</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; nearest_mipmap_nearest&lt;Dimensions, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, std::numeric_limits&lt;T&gt;::is_iec559, <span class="keyword">false</span>&gt;::call,</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; nearest_mipmap_nearest&lt;Dimensions, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, std::numeric_limits&lt;T&gt;::is_iec559, <span class="keyword">true</span>&gt;::call</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; },</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; {</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; linear_mipmap_nearest&lt;Dimensions, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, std::numeric_limits&lt;T&gt;::is_iec559, <span class="keyword">false</span>&gt;::call,</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; linear_mipmap_nearest&lt;Dimensions, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, std::numeric_limits&lt;T&gt;::is_iec559, <span class="keyword">true</span>&gt;::call</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; }</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; },</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; {</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; {</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; nearest_mipmap_linear&lt;Dimensions, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, std::numeric_limits&lt;T&gt;::is_iec559, <span class="keyword">false</span>&gt;::call,</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; nearest_mipmap_linear&lt;Dimensions, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, std::numeric_limits&lt;T&gt;::is_iec559, <span class="keyword">true</span>&gt;::call</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; },</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; {</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; linear_mipmap_linear&lt;Dimensions, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, std::numeric_limits&lt;T&gt;::is_iec559, <span class="keyword">false</span>&gt;::call,</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; linear_mipmap_linear&lt;Dimensions, texture_type, interpolate_type, normalized_type, fetch_type, texel_type, std::numeric_limits&lt;T&gt;::is_iec559, <span class="keyword">true</span>&gt;::call</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; }</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; };</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; static_assert(<span class="keyword">sizeof</span>(Table) / <span class="keyword">sizeof</span>(Table[0]) == FILTER_COUNT, <span class="stringliteral">&quot;GLI ERROR: &#39;Table&#39; doesn&#39;t match the number of supported filters&quot;</span>);</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; GLI_ASSERT(Table[Mip - FILTER_FIRST][Min - FILTER_FIRST][Border ? 1 : 0]);</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">return</span> Table[Mip - FILTER_FIRST][Min - FILTER_FIRST][Border ? 1 : 0];</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; }</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;}<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div>
<div class="ttc" id="a00030_html"><div class="ttname"><a href="a00030.html">filter.hpp</a></div><div class="ttdoc">Include to use filter enum, to select filtering methods. </div></div>
<div class="ttc" id="a00074_html_a610876e02cee64e29fe4376ffeb6b9b9"><div class="ttname"><a href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">gli::filter</a></div><div class="ttdeci">filter</div><div class="ttdoc">Texture filtring modes. </div><div class="ttdef"><b>Definition:</b> <a href="a00030_source.html#l00009">filter.hpp:9</a></div></div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,118 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: flip.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li><li class="navelem"><a class="el" href="dir_2c398834837487e57bd8c53ea39543b9.html">core</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">flip.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &lt;array&gt;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;../texture2d.hpp&quot;</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;../texture2d_array.hpp&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;../texture_cube.hpp&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;../texture_cube_array.hpp&quot;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;{</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture&gt;</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; texture flip(texture <span class="keyword">const</span> &amp; Texture);</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;flip.inl&quot;</span></div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

204
external/gli/doc/api/a00033.html vendored 100644
View File

@ -0,0 +1,204 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: format.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">format.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Include to use the format enum and query properties of formats.
<a href="#details">More...</a></p>
<p><a href="a00033_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:a00074"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">gli</a></td></tr>
<tr class="memdesc:a00074"><td class="mdescLeft">&#160;</td><td class="mdescRight">Namespace where all the classes and functions provided by GLI are exposed. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a387137c43ed9616d39ba90e890d181eb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a387137c43ed9616d39ba90e890d181eb"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> <tr class="memdesc:a387137c43ed9616d39ba90e890d181eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Texture data format. <br /></td></tr>
<tr class="separator:a387137c43ed9616d39ba90e890d181eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</td></tr>
<tr class="memitem:a43317d2a6e2101377c67b8831ef2fd4c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a43317d2a6e2101377c67b8831ef2fd4c"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a43317d2a6e2101377c67b8831ef2fd4c">swizzle</a> <tr class="memdesc:a43317d2a6e2101377c67b8831ef2fd4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represent the source of a channel. <br /></td></tr>
<tr class="separator:a43317d2a6e2101377c67b8831ef2fd4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a8ed69f83293f50cafb2d147d609e2a96"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ed69f83293f50cafb2d147d609e2a96"></a>
ivec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a8ed69f83293f50cafb2d147d609e2a96">block_extent</a> (format Format)</td></tr>
<tr class="memdesc:a8ed69f83293f50cafb2d147d609e2a96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the dimensions in texels of the block for a format. <br /></td></tr>
<tr class="separator:a8ed69f83293f50cafb2d147d609e2a96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8ca05b97f1deac7bf5a50468868a449"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae8ca05b97f1deac7bf5a50468868a449"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#ae8ca05b97f1deac7bf5a50468868a449">block_size</a> (format Format)</td></tr>
<tr class="memdesc:ae8ca05b97f1deac7bf5a50468868a449"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the size in bytes of a block for a format. <br /></td></tr>
<tr class="separator:ae8ca05b97f1deac7bf5a50468868a449"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55700a60464d27ea9d2f03d80c8b76d8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a55700a60464d27ea9d2f03d80c8b76d8"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a55700a60464d27ea9d2f03d80c8b76d8">component_count</a> (format Format)</td></tr>
<tr class="memdesc:a55700a60464d27ea9d2f03d80c8b76d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of components of a format. <br /></td></tr>
<tr class="separator:a55700a60464d27ea9d2f03d80c8b76d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf97bb3a068c322d88797b0e18209e16"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf97bb3a068c322d88797b0e18209e16"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#abf97bb3a068c322d88797b0e18209e16">is_channel</a> (swizzle Swizzle)</td></tr>
<tr class="memdesc:abf97bb3a068c322d88797b0e18209e16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine whether the Swizzle value represent a channel. <br /></td></tr>
<tr class="separator:abf97bb3a068c322d88797b0e18209e16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0034114c47df4c39d48ba964ab823f98"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0034114c47df4c39d48ba964ab823f98"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a0034114c47df4c39d48ba964ab823f98">is_compressed</a> (format Format)</td></tr>
<tr class="memdesc:a0034114c47df4c39d48ba964ab823f98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate whether a format is compressed. <br /></td></tr>
<tr class="separator:a0034114c47df4c39d48ba964ab823f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33f4f2b1c711dc0dec52b78ea0a8b2e1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a33f4f2b1c711dc0dec52b78ea0a8b2e1"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a33f4f2b1c711dc0dec52b78ea0a8b2e1">is_float</a> (format Format)</td></tr>
<tr class="memdesc:a33f4f2b1c711dc0dec52b78ea0a8b2e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate whether the format is an float format. <br /></td></tr>
<tr class="separator:a33f4f2b1c711dc0dec52b78ea0a8b2e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a760a9e4d384a6573979a9c6ffb6c68c1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a760a9e4d384a6573979a9c6ffb6c68c1"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a760a9e4d384a6573979a9c6ffb6c68c1">is_integer</a> (format Format)</td></tr>
<tr class="memdesc:a760a9e4d384a6573979a9c6ffb6c68c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate whether the format is an integer format. <br /></td></tr>
<tr class="separator:a760a9e4d384a6573979a9c6ffb6c68c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17d5d727bab578c1158ab6c1d6875194"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a17d5d727bab578c1158ab6c1d6875194"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a17d5d727bab578c1158ab6c1d6875194">is_normalized</a> (format Format)</td></tr>
<tr class="memdesc:a17d5d727bab578c1158ab6c1d6875194"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate whether the format is normalized. <br /></td></tr>
<tr class="separator:a17d5d727bab578c1158ab6c1d6875194"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab36efc5fd0dd0d943d9e4e622d91a7ac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab36efc5fd0dd0d943d9e4e622d91a7ac"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#ab36efc5fd0dd0d943d9e4e622d91a7ac">is_packed</a> (format Format)</td></tr>
<tr class="memdesc:ab36efc5fd0dd0d943d9e4e622d91a7ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate whether the format is packed. <br /></td></tr>
<tr class="separator:ab36efc5fd0dd0d943d9e4e622d91a7ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9000c5cfdbcdf0f105a658c4ae691ee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad9000c5cfdbcdf0f105a658c4ae691ee"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#ad9000c5cfdbcdf0f105a658c4ae691ee">is_s3tc_compressed</a> (format Format)</td></tr>
<tr class="memdesc:ad9000c5cfdbcdf0f105a658c4ae691ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate whether a format is compressed with an S3TC algorithm. <br /></td></tr>
<tr class="separator:ad9000c5cfdbcdf0f105a658c4ae691ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abad1d0ceee17fb97917610f2016a0300"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abad1d0ceee17fb97917610f2016a0300"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#abad1d0ceee17fb97917610f2016a0300">is_signed</a> (format Format)</td></tr>
<tr class="memdesc:abad1d0ceee17fb97917610f2016a0300"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate whether a format is signed. <br /></td></tr>
<tr class="separator:abad1d0ceee17fb97917610f2016a0300"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43c033d310c2021ec452b2759199c81e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a43c033d310c2021ec452b2759199c81e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a43c033d310c2021ec452b2759199c81e">is_signed_integer</a> (format Format)</td></tr>
<tr class="memdesc:a43c033d310c2021ec452b2759199c81e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate whether the format is a signed integer format. <br /></td></tr>
<tr class="separator:a43c033d310c2021ec452b2759199c81e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada3a293985c1f033695cd6c34740093e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada3a293985c1f033695cd6c34740093e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#ada3a293985c1f033695cd6c34740093e">is_snorm</a> (format Format)</td></tr>
<tr class="memdesc:ada3a293985c1f033695cd6c34740093e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate whether the format is a signed normalized format. <br /></td></tr>
<tr class="separator:ada3a293985c1f033695cd6c34740093e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc6f5ed334a41cfaa3733ec6abdb7da3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acc6f5ed334a41cfaa3733ec6abdb7da3"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#acc6f5ed334a41cfaa3733ec6abdb7da3">is_srgb</a> (format Format)</td></tr>
<tr class="memdesc:acc6f5ed334a41cfaa3733ec6abdb7da3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate whether a format stores sRGB color space values. <br /></td></tr>
<tr class="separator:acc6f5ed334a41cfaa3733ec6abdb7da3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9f3096286a51cc3b66dc060c991b4aa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad9f3096286a51cc3b66dc060c991b4aa"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#ad9f3096286a51cc3b66dc060c991b4aa">is_unorm</a> (format Format)</td></tr>
<tr class="memdesc:ad9f3096286a51cc3b66dc060c991b4aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate whether the format is an unsigned normalized format. <br /></td></tr>
<tr class="separator:ad9f3096286a51cc3b66dc060c991b4aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab427a8d56118103dfb7f2357f91f2dc3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab427a8d56118103dfb7f2357f91f2dc3"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#ab427a8d56118103dfb7f2357f91f2dc3">is_unsigned</a> (format Format)</td></tr>
<tr class="memdesc:ab427a8d56118103dfb7f2357f91f2dc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate whether a format is unsigned. <br /></td></tr>
<tr class="separator:ab427a8d56118103dfb7f2357f91f2dc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4bcc7bc920e3f2719a60f0f868510684"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4bcc7bc920e3f2719a60f0f868510684"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a4bcc7bc920e3f2719a60f0f868510684">is_unsigned_integer</a> (format Format)</td></tr>
<tr class="memdesc:a4bcc7bc920e3f2719a60f0f868510684"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate whether the format is an unsigned integer format. <br /></td></tr>
<tr class="separator:a4bcc7bc920e3f2719a60f0f868510684"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63eba0158afbac2959449c8a7d9b806d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63eba0158afbac2959449c8a7d9b806d"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a63eba0158afbac2959449c8a7d9b806d">is_valid</a> (format Format)</td></tr>
<tr class="memdesc:a63eba0158afbac2959449c8a7d9b806d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate whether a format value is value or not. <br /></td></tr>
<tr class="separator:a63eba0158afbac2959449c8a7d9b806d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Include to use the format enum and query properties of formats. </p>
<p>Definition in file <a class="el" href="a00033_source.html">format.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,440 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: format.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">format.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00033.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00071.html">type.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &lt;cstdint&gt;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;{</div>
<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="a00074.html#a387137c43ed9616d39ba90e890d181eb"> 12</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; {</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; FORMAT_UNDEFINED = 0,</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; FORMAT_RG4_UNORM_PACK8, FORMAT_FIRST = FORMAT_RG4_UNORM_PACK8,</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; FORMAT_RGBA4_UNORM_PACK16,</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; FORMAT_BGRA4_UNORM_PACK16,</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; FORMAT_R5G6B5_UNORM_PACK16,</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; FORMAT_B5G6R5_UNORM_PACK16,</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; FORMAT_RGB5A1_UNORM_PACK16,</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; FORMAT_BGR5A1_UNORM_PACK16,</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; FORMAT_A1RGB5_UNORM_PACK16,</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; FORMAT_R8_UNORM_PACK8,</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; FORMAT_R8_SNORM_PACK8,</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; FORMAT_R8_USCALED_PACK8,</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; FORMAT_R8_SSCALED_PACK8,</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; FORMAT_R8_UINT_PACK8,</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; FORMAT_R8_SINT_PACK8,</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; FORMAT_R8_SRGB_PACK8,</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; FORMAT_RG8_UNORM_PACK8,</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; FORMAT_RG8_SNORM_PACK8,</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; FORMAT_RG8_USCALED_PACK8,</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; FORMAT_RG8_SSCALED_PACK8,</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; FORMAT_RG8_UINT_PACK8,</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; FORMAT_RG8_SINT_PACK8,</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; FORMAT_RG8_SRGB_PACK8,</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; FORMAT_RGB8_UNORM_PACK8,</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; FORMAT_RGB8_SNORM_PACK8,</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; FORMAT_RGB8_USCALED_PACK8,</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; FORMAT_RGB8_SSCALED_PACK8,</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; FORMAT_RGB8_UINT_PACK8,</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; FORMAT_RGB8_SINT_PACK8,</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; FORMAT_RGB8_SRGB_PACK8,</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; FORMAT_BGR8_UNORM_PACK8,</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; FORMAT_BGR8_SNORM_PACK8,</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; FORMAT_BGR8_USCALED_PACK8,</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; FORMAT_BGR8_SSCALED_PACK8,</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; FORMAT_BGR8_UINT_PACK8,</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; FORMAT_BGR8_SINT_PACK8,</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; FORMAT_BGR8_SRGB_PACK8,</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; FORMAT_RGBA8_UNORM_PACK8,</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; FORMAT_RGBA8_SNORM_PACK8,</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; FORMAT_RGBA8_USCALED_PACK8,</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; FORMAT_RGBA8_SSCALED_PACK8,</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; FORMAT_RGBA8_UINT_PACK8,</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; FORMAT_RGBA8_SINT_PACK8,</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; FORMAT_RGBA8_SRGB_PACK8,</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; FORMAT_BGRA8_UNORM_PACK8,</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; FORMAT_BGRA8_SNORM_PACK8,</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; FORMAT_BGRA8_USCALED_PACK8,</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; FORMAT_BGRA8_SSCALED_PACK8,</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; FORMAT_BGRA8_UINT_PACK8,</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; FORMAT_BGRA8_SINT_PACK8,</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; FORMAT_BGRA8_SRGB_PACK8,</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; FORMAT_RGBA8_UNORM_PACK32,</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; FORMAT_RGBA8_SNORM_PACK32,</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; FORMAT_RGBA8_USCALED_PACK32,</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; FORMAT_RGBA8_SSCALED_PACK32,</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; FORMAT_RGBA8_UINT_PACK32,</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; FORMAT_RGBA8_SINT_PACK32,</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; FORMAT_RGBA8_SRGB_PACK32,</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; FORMAT_RGB10A2_UNORM_PACK32,</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; FORMAT_RGB10A2_SNORM_PACK32,</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; FORMAT_RGB10A2_USCALED_PACK32,</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; FORMAT_RGB10A2_SSCALED_PACK32,</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; FORMAT_RGB10A2_UINT_PACK32,</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; FORMAT_RGB10A2_SINT_PACK32,</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; FORMAT_BGR10A2_UNORM_PACK32,</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; FORMAT_BGR10A2_SNORM_PACK32,</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; FORMAT_BGR10A2_USCALED_PACK32,</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; FORMAT_BGR10A2_SSCALED_PACK32,</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; FORMAT_BGR10A2_UINT_PACK32,</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; FORMAT_BGR10A2_SINT_PACK32,</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; FORMAT_R16_UNORM_PACK16,</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; FORMAT_R16_SNORM_PACK16,</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; FORMAT_R16_USCALED_PACK16,</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; FORMAT_R16_SSCALED_PACK16,</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; FORMAT_R16_UINT_PACK16,</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; FORMAT_R16_SINT_PACK16,</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; FORMAT_R16_SFLOAT_PACK16,</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; FORMAT_RG16_UNORM_PACK16,</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; FORMAT_RG16_SNORM_PACK16,</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; FORMAT_RG16_USCALED_PACK16,</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; FORMAT_RG16_SSCALED_PACK16,</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; FORMAT_RG16_UINT_PACK16,</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; FORMAT_RG16_SINT_PACK16,</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; FORMAT_RG16_SFLOAT_PACK16,</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; FORMAT_RGB16_UNORM_PACK16,</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; FORMAT_RGB16_SNORM_PACK16,</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; FORMAT_RGB16_USCALED_PACK16,</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; FORMAT_RGB16_SSCALED_PACK16,</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; FORMAT_RGB16_UINT_PACK16,</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; FORMAT_RGB16_SINT_PACK16,</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; FORMAT_RGB16_SFLOAT_PACK16,</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; FORMAT_RGBA16_UNORM_PACK16,</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; FORMAT_RGBA16_SNORM_PACK16,</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; FORMAT_RGBA16_USCALED_PACK16,</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; FORMAT_RGBA16_SSCALED_PACK16,</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; FORMAT_RGBA16_UINT_PACK16,</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; FORMAT_RGBA16_SINT_PACK16,</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; FORMAT_RGBA16_SFLOAT_PACK16,</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; FORMAT_R32_UINT_PACK32,</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; FORMAT_R32_SINT_PACK32,</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; FORMAT_R32_SFLOAT_PACK32,</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; FORMAT_RG32_UINT_PACK32,</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; FORMAT_RG32_SINT_PACK32,</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; FORMAT_RG32_SFLOAT_PACK32,</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; FORMAT_RGB32_UINT_PACK32,</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; FORMAT_RGB32_SINT_PACK32,</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; FORMAT_RGB32_SFLOAT_PACK32,</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; FORMAT_RGBA32_UINT_PACK32,</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; FORMAT_RGBA32_SINT_PACK32,</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; FORMAT_RGBA32_SFLOAT_PACK32,</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; FORMAT_R64_UINT_PACK64,</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; FORMAT_R64_SINT_PACK64,</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; FORMAT_R64_SFLOAT_PACK64,</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; FORMAT_RG64_UINT_PACK64,</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; FORMAT_RG64_SINT_PACK64,</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; FORMAT_RG64_SFLOAT_PACK64,</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; FORMAT_RGB64_UINT_PACK64,</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; FORMAT_RGB64_SINT_PACK64,</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; FORMAT_RGB64_SFLOAT_PACK64,</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; FORMAT_RGBA64_UINT_PACK64,</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; FORMAT_RGBA64_SINT_PACK64,</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; FORMAT_RGBA64_SFLOAT_PACK64,</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; FORMAT_RG11B10_UFLOAT_PACK32,</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; FORMAT_RGB9E5_UFLOAT_PACK32,</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; FORMAT_D16_UNORM_PACK16,</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; FORMAT_D24_UNORM_PACK32,</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; FORMAT_D32_SFLOAT_PACK32,</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; FORMAT_S8_UINT_PACK8,</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; FORMAT_D16_UNORM_S8_UINT_PACK32,</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; FORMAT_D24_UNORM_S8_UINT_PACK32,</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; FORMAT_D32_SFLOAT_S8_UINT_PACK64,</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; FORMAT_RGB_DXT1_UNORM_BLOCK8,</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; FORMAT_RGB_DXT1_SRGB_BLOCK8,</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; FORMAT_RGBA_DXT1_UNORM_BLOCK8,</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; FORMAT_RGBA_DXT1_SRGB_BLOCK8,</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; FORMAT_RGBA_DXT3_UNORM_BLOCK16,</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; FORMAT_RGBA_DXT3_SRGB_BLOCK16,</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; FORMAT_RGBA_DXT5_UNORM_BLOCK16,</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; FORMAT_RGBA_DXT5_SRGB_BLOCK16,</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; FORMAT_R_ATI1N_UNORM_BLOCK8,</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; FORMAT_R_ATI1N_SNORM_BLOCK8,</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; FORMAT_RG_ATI2N_UNORM_BLOCK16,</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; FORMAT_RG_ATI2N_SNORM_BLOCK16,</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; FORMAT_RGB_BP_UFLOAT_BLOCK16,</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; FORMAT_RGB_BP_SFLOAT_BLOCK16,</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; FORMAT_RGBA_BP_UNORM_BLOCK16,</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; FORMAT_RGBA_BP_SRGB_BLOCK16,</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; FORMAT_RGB_ETC2_UNORM_BLOCK8,</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; FORMAT_RGB_ETC2_SRGB_BLOCK8,</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; FORMAT_RGBA_ETC2_UNORM_BLOCK8,</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; FORMAT_RGBA_ETC2_SRGB_BLOCK8,</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; FORMAT_RGBA_ETC2_UNORM_BLOCK16,</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; FORMAT_RGBA_ETC2_SRGB_BLOCK16,</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; FORMAT_R_EAC_UNORM_BLOCK8,</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; FORMAT_R_EAC_SNORM_BLOCK8,</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; FORMAT_RG_EAC_UNORM_BLOCK16,</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; FORMAT_RG_EAC_SNORM_BLOCK16,</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; FORMAT_RGBA_ASTC_4X4_UNORM_BLOCK16,</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; FORMAT_RGBA_ASTC_4X4_SRGB_BLOCK16,</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; FORMAT_RGBA_ASTC_5X4_UNORM_BLOCK16,</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; FORMAT_RGBA_ASTC_5X4_SRGB_BLOCK16,</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; FORMAT_RGBA_ASTC_5X5_UNORM_BLOCK16,</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; FORMAT_RGBA_ASTC_5X5_SRGB_BLOCK16,</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; FORMAT_RGBA_ASTC_6X5_UNORM_BLOCK16,</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; FORMAT_RGBA_ASTC_6X5_SRGB_BLOCK16,</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; FORMAT_RGBA_ASTC_6X6_UNORM_BLOCK16,</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; FORMAT_RGBA_ASTC_6X6_SRGB_BLOCK16,</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; FORMAT_RGBA_ASTC_8X5_UNORM_BLOCK16,</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; FORMAT_RGBA_ASTC_8X5_SRGB_BLOCK16,</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; FORMAT_RGBA_ASTC_8X6_UNORM_BLOCK16,</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; FORMAT_RGBA_ASTC_8X6_SRGB_BLOCK16,</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; FORMAT_RGBA_ASTC_8X8_UNORM_BLOCK16,</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; FORMAT_RGBA_ASTC_8X8_SRGB_BLOCK16,</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; FORMAT_RGBA_ASTC_10X5_UNORM_BLOCK16,</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; FORMAT_RGBA_ASTC_10X5_SRGB_BLOCK16,</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; FORMAT_RGBA_ASTC_10X6_UNORM_BLOCK16,</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; FORMAT_RGBA_ASTC_10X6_SRGB_BLOCK16,</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; FORMAT_RGBA_ASTC_10X8_UNORM_BLOCK16,</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; FORMAT_RGBA_ASTC_10X8_SRGB_BLOCK16,</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; FORMAT_RGBA_ASTC_10X10_UNORM_BLOCK16,</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; FORMAT_RGBA_ASTC_10X10_SRGB_BLOCK16,</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; FORMAT_RGBA_ASTC_12X10_UNORM_BLOCK16,</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; FORMAT_RGBA_ASTC_12X10_SRGB_BLOCK16,</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; FORMAT_RGBA_ASTC_12X12_UNORM_BLOCK16,</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; FORMAT_RGBA_ASTC_12X12_SRGB_BLOCK16,</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; FORMAT_RGB_PVRTC1_8X8_UNORM_BLOCK32,</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; FORMAT_RGB_PVRTC1_8X8_SRGB_BLOCK32,</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; FORMAT_RGB_PVRTC1_16X8_UNORM_BLOCK32,</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; FORMAT_RGB_PVRTC1_16X8_SRGB_BLOCK32,</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; FORMAT_RGBA_PVRTC1_8X8_UNORM_BLOCK32,</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; FORMAT_RGBA_PVRTC1_8X8_SRGB_BLOCK32,</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; FORMAT_RGBA_PVRTC1_16X8_UNORM_BLOCK32,</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; FORMAT_RGBA_PVRTC1_16X8_SRGB_BLOCK32,</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; FORMAT_RGBA_PVRTC2_4X4_UNORM_BLOCK8,</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; FORMAT_RGBA_PVRTC2_4X4_SRGB_BLOCK8,</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; FORMAT_RGBA_PVRTC2_8X4_UNORM_BLOCK8,</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; FORMAT_RGBA_PVRTC2_8X4_SRGB_BLOCK8,</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; FORMAT_RGB_ETC_UNORM_BLOCK8,</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; FORMAT_RGB_ATC_UNORM_BLOCK8,</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; FORMAT_RGBA_ATCA_UNORM_BLOCK16,</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; FORMAT_RGBA_ATCI_UNORM_BLOCK16,</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; FORMAT_L8_UNORM_PACK8,</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; FORMAT_A8_UNORM_PACK8,</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; FORMAT_LA8_UNORM_PACK8,</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; FORMAT_L16_UNORM_PACK16,</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; FORMAT_A16_UNORM_PACK16,</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; FORMAT_LA16_UNORM_PACK16,</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; FORMAT_BGR8_UNORM_PACK32,</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; FORMAT_BGR8_SRGB_PACK32,</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; FORMAT_RG3B2_UNORM_PACK8, FORMAT_LAST = FORMAT_RG3B2_UNORM_PACK8</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; };</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div>
<div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="a00074.html#a43317d2a6e2101377c67b8831ef2fd4c"> 259</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="a00074.html#a43317d2a6e2101377c67b8831ef2fd4c">swizzle</a></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; SWIZZLE_RED, SWIZZLE_FIRST = SWIZZLE_RED, SWIZZLE_CHANNEL_FIRST = SWIZZLE_RED,</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; SWIZZLE_GREEN,</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; SWIZZLE_BLUE,</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; SWIZZLE_ALPHA, SWIZZLE_CHANNEL_LAST = SWIZZLE_ALPHA,</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; SWIZZLE_ZERO,</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; SWIZZLE_ONE, SWIZZLE_LAST = SWIZZLE_ONE</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; };</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div>
<div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="a00074.html#abf97bb3a068c322d88797b0e18209e16"> 270</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="a00074.html#abf97bb3a068c322d88797b0e18209e16">is_channel</a>(<a class="code" href="a00074.html#a43317d2a6e2101377c67b8831ef2fd4c">swizzle</a> Swizzle)</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">return</span> Swizzle &gt;= SWIZZLE_CHANNEL_FIRST &amp;&amp; Swizzle &lt;= SWIZZLE_CHANNEL_LAST;</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">enum</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; {</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; FORMAT_INVALID = -1,</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; FORMAT_COUNT = FORMAT_LAST - FORMAT_FIRST + 1,</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; SWIZZLE_COUNT = SWIZZLE_LAST - SWIZZLE_FIRST + 1</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; };</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
<div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="a00074.html#a63eba0158afbac2959449c8a7d9b806d"> 283</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="a00074.html#a63eba0158afbac2959449c8a7d9b806d">is_valid</a>(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format)</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">return</span> Format &gt;= FORMAT_FIRST &amp;&amp; Format &lt;= FORMAT_LAST;</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">typedef</span> glm::tvec4&lt;swizzle&gt; swizzles;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00074.html#a0034114c47df4c39d48ba964ab823f98">is_compressed</a>(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format);</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00074.html#ad9000c5cfdbcdf0f105a658c4ae691ee">is_s3tc_compressed</a>(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format);</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00074.html#acc6f5ed334a41cfaa3733ec6abdb7da3">is_srgb</a>(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format);</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="a00074.html#ae8ca05b97f1deac7bf5a50468868a449">block_size</a>(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format);</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; ivec3 <a class="code" href="a00074.html#a8ed69f83293f50cafb2d147d609e2a96">block_extent</a>(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format);</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="a00074.html#a55700a60464d27ea9d2f03d80c8b76d8">component_count</a>(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format);</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00074.html#ab427a8d56118103dfb7f2357f91f2dc3">is_unsigned</a>(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format);</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00074.html#abad1d0ceee17fb97917610f2016a0300">is_signed</a>(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format);</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00074.html#a760a9e4d384a6573979a9c6ffb6c68c1">is_integer</a>(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format);</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00074.html#a43c033d310c2021ec452b2759199c81e">is_signed_integer</a>(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format);</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00074.html#a4bcc7bc920e3f2719a60f0f868510684">is_unsigned_integer</a>(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format);</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00074.html#a33f4f2b1c711dc0dec52b78ea0a8b2e1">is_float</a>(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format);</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00074.html#a17d5d727bab578c1158ab6c1d6875194">is_normalized</a>(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format);</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00074.html#ad9f3096286a51cc3b66dc060c991b4aa">is_unorm</a>(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format);</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00074.html#ada3a293985c1f033695cd6c34740093e">is_snorm</a>(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format);</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00074.html#ab36efc5fd0dd0d943d9e4e622d91a7ac">is_packed</a>(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> Format);</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor">#include &quot;./core/format.inl&quot;</span></div>
<div class="ttc" id="a00074_html_a8ed69f83293f50cafb2d147d609e2a96"><div class="ttname"><a href="a00074.html#a8ed69f83293f50cafb2d147d609e2a96">gli::block_extent</a></div><div class="ttdeci">ivec3 block_extent(format Format)</div><div class="ttdoc">Return the dimensions in texels of the block for a format. </div></div>
<div class="ttc" id="a00074_html_a33f4f2b1c711dc0dec52b78ea0a8b2e1"><div class="ttname"><a href="a00074.html#a33f4f2b1c711dc0dec52b78ea0a8b2e1">gli::is_float</a></div><div class="ttdeci">bool is_float(format Format)</div><div class="ttdoc">Evaluate whether the format is an float format. </div></div>
<div class="ttc" id="a00074_html_a387137c43ed9616d39ba90e890d181eb"><div class="ttname"><a href="a00074.html#a387137c43ed9616d39ba90e890d181eb">gli::format</a></div><div class="ttdeci">format</div><div class="ttdoc">Texture data format. </div><div class="ttdef"><b>Definition:</b> <a href="a00033_source.html#l00012">format.hpp:12</a></div></div>
<div class="ttc" id="a00074_html_a63eba0158afbac2959449c8a7d9b806d"><div class="ttname"><a href="a00074.html#a63eba0158afbac2959449c8a7d9b806d">gli::is_valid</a></div><div class="ttdeci">bool is_valid(format Format)</div><div class="ttdoc">Evaluate whether a format value is value or not. </div><div class="ttdef"><b>Definition:</b> <a href="a00033_source.html#l00283">format.hpp:283</a></div></div>
<div class="ttc" id="a00074_html_a55700a60464d27ea9d2f03d80c8b76d8"><div class="ttname"><a href="a00074.html#a55700a60464d27ea9d2f03d80c8b76d8">gli::component_count</a></div><div class="ttdeci">size_t component_count(format Format)</div><div class="ttdoc">Return the number of components of a format. </div></div>
<div class="ttc" id="a00074_html_acc6f5ed334a41cfaa3733ec6abdb7da3"><div class="ttname"><a href="a00074.html#acc6f5ed334a41cfaa3733ec6abdb7da3">gli::is_srgb</a></div><div class="ttdeci">bool is_srgb(format Format)</div><div class="ttdoc">Evaluate whether a format stores sRGB color space values. </div></div>
<div class="ttc" id="a00074_html_ab36efc5fd0dd0d943d9e4e622d91a7ac"><div class="ttname"><a href="a00074.html#ab36efc5fd0dd0d943d9e4e622d91a7ac">gli::is_packed</a></div><div class="ttdeci">bool is_packed(format Format)</div><div class="ttdoc">Evaluate whether the format is packed. </div></div>
<div class="ttc" id="a00074_html_abf97bb3a068c322d88797b0e18209e16"><div class="ttname"><a href="a00074.html#abf97bb3a068c322d88797b0e18209e16">gli::is_channel</a></div><div class="ttdeci">bool is_channel(swizzle Swizzle)</div><div class="ttdoc">Determine whether the Swizzle value represent a channel. </div><div class="ttdef"><b>Definition:</b> <a href="a00033_source.html#l00270">format.hpp:270</a></div></div>
<div class="ttc" id="a00074_html_a760a9e4d384a6573979a9c6ffb6c68c1"><div class="ttname"><a href="a00074.html#a760a9e4d384a6573979a9c6ffb6c68c1">gli::is_integer</a></div><div class="ttdeci">bool is_integer(format Format)</div><div class="ttdoc">Evaluate whether the format is an integer format. </div></div>
<div class="ttc" id="a00074_html_a4bcc7bc920e3f2719a60f0f868510684"><div class="ttname"><a href="a00074.html#a4bcc7bc920e3f2719a60f0f868510684">gli::is_unsigned_integer</a></div><div class="ttdeci">bool is_unsigned_integer(format Format)</div><div class="ttdoc">Evaluate whether the format is an unsigned integer format. </div></div>
<div class="ttc" id="a00074_html_ad9f3096286a51cc3b66dc060c991b4aa"><div class="ttname"><a href="a00074.html#ad9f3096286a51cc3b66dc060c991b4aa">gli::is_unorm</a></div><div class="ttdeci">bool is_unorm(format Format)</div><div class="ttdoc">Evaluate whether the format is an unsigned normalized format. </div></div>
<div class="ttc" id="a00074_html_a0034114c47df4c39d48ba964ab823f98"><div class="ttname"><a href="a00074.html#a0034114c47df4c39d48ba964ab823f98">gli::is_compressed</a></div><div class="ttdeci">bool is_compressed(format Format)</div><div class="ttdoc">Evaluate whether a format is compressed. </div></div>
<div class="ttc" id="a00074_html_a43c033d310c2021ec452b2759199c81e"><div class="ttname"><a href="a00074.html#a43c033d310c2021ec452b2759199c81e">gli::is_signed_integer</a></div><div class="ttdeci">bool is_signed_integer(format Format)</div><div class="ttdoc">Evaluate whether the format is a signed integer format. </div></div>
<div class="ttc" id="a00074_html_ada3a293985c1f033695cd6c34740093e"><div class="ttname"><a href="a00074.html#ada3a293985c1f033695cd6c34740093e">gli::is_snorm</a></div><div class="ttdeci">bool is_snorm(format Format)</div><div class="ttdoc">Evaluate whether the format is a signed normalized format. </div></div>
<div class="ttc" id="a00074_html_a17d5d727bab578c1158ab6c1d6875194"><div class="ttname"><a href="a00074.html#a17d5d727bab578c1158ab6c1d6875194">gli::is_normalized</a></div><div class="ttdeci">bool is_normalized(format Format)</div><div class="ttdoc">Evaluate whether the format is normalized. </div></div>
<div class="ttc" id="a00074_html_abad1d0ceee17fb97917610f2016a0300"><div class="ttname"><a href="a00074.html#abad1d0ceee17fb97917610f2016a0300">gli::is_signed</a></div><div class="ttdeci">bool is_signed(format Format)</div><div class="ttdoc">Evaluate whether a format is signed. </div></div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
<div class="ttc" id="a00074_html_a43317d2a6e2101377c67b8831ef2fd4c"><div class="ttname"><a href="a00074.html#a43317d2a6e2101377c67b8831ef2fd4c">gli::swizzle</a></div><div class="ttdeci">swizzle</div><div class="ttdoc">Represent the source of a channel. </div><div class="ttdef"><b>Definition:</b> <a href="a00033_source.html#l00259">format.hpp:259</a></div></div>
<div class="ttc" id="a00074_html_ad9000c5cfdbcdf0f105a658c4ae691ee"><div class="ttname"><a href="a00074.html#ad9000c5cfdbcdf0f105a658c4ae691ee">gli::is_s3tc_compressed</a></div><div class="ttdeci">bool is_s3tc_compressed(format Format)</div><div class="ttdoc">Evaluate whether a format is compressed with an S3TC algorithm. </div></div>
<div class="ttc" id="a00074_html_ab427a8d56118103dfb7f2357f91f2dc3"><div class="ttname"><a href="a00074.html#ab427a8d56118103dfb7f2357f91f2dc3">gli::is_unsigned</a></div><div class="ttdeci">bool is_unsigned(format Format)</div><div class="ttdoc">Evaluate whether a format is unsigned. </div></div>
<div class="ttc" id="a00074_html_ae8ca05b97f1deac7bf5a50468868a449"><div class="ttname"><a href="a00074.html#ae8ca05b97f1deac7bf5a50468868a449">gli::block_size</a></div><div class="ttdeci">size_t block_size(format Format)</div><div class="ttdoc">Return the size in bytes of a block for a format. </div></div>
<div class="ttc" id="a00071_html"><div class="ttname"><a href="a00071.html">type.hpp</a></div><div class="ttdoc">Include to use basic GLI types. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

155
external/gli/doc/api/a00034.html vendored 100644
View File

@ -0,0 +1,155 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: generate_mipmaps.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">generate_mipmaps.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Include to generate mipmaps of textures.
<a href="#details">More...</a></p>
<p><a href="a00034_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:a00074"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">gli</a></td></tr>
<tr class="memdesc:a00074"><td class="mdescLeft">&#160;</td><td class="mdescRight">Namespace where all the classes and functions provided by GLI are exposed. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aebc770740435e7a599c0da7f70ae8bba"><td class="memTemplParams" colspan="2"><a class="anchor" id="aebc770740435e7a599c0da7f70ae8bba"></a>
template&lt;typename texture_type &gt; </td></tr>
<tr class="memitem:aebc770740435e7a599c0da7f70ae8bba"><td class="memTemplItemLeft" align="right" valign="top">texture_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00074.html#aebc770740435e7a599c0da7f70ae8bba">generate_mipmaps</a> (texture_type const &amp;Texture, filter Minification)</td></tr>
<tr class="memdesc:aebc770740435e7a599c0da7f70ae8bba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a texture and generate all the mipmaps of the texture using the Minification filter. <br /></td></tr>
<tr class="separator:aebc770740435e7a599c0da7f70ae8bba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49a8d8e4ceed6a19f833bb4a91fd5b99"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a49a8d8e4ceed6a19f833bb4a91fd5b99"></a>
texture1d&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a49a8d8e4ceed6a19f833bb4a91fd5b99">generate_mipmaps</a> (texture1d const &amp;Texture, texture1d::size_type BaseLevel, texture1d::size_type MaxLevel, filter Minification)</td></tr>
<tr class="memdesc:a49a8d8e4ceed6a19f833bb4a91fd5b99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a texture and generate the mipmaps of the texture from the BaseLevel to the MaxLevel included using the Minification filter. <br /></td></tr>
<tr class="separator:a49a8d8e4ceed6a19f833bb4a91fd5b99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79cb90926a67b19285a4cd2ca3346bd1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a79cb90926a67b19285a4cd2ca3346bd1"></a>
texture1d_array&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a79cb90926a67b19285a4cd2ca3346bd1">generate_mipmaps</a> (texture1d_array const &amp;Texture, texture1d_array::size_type BaseLayer, texture1d_array::size_type MaxLayer, texture1d_array::size_type BaseLevel, texture1d_array::size_type MaxLevel, filter Minification)</td></tr>
<tr class="memdesc:a79cb90926a67b19285a4cd2ca3346bd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a texture and generate the mipmaps of the texture from the BaseLayer to the MaxLayer and from the BaseLevel to the MaxLevel included levels using the Minification filter. <br /></td></tr>
<tr class="separator:a79cb90926a67b19285a4cd2ca3346bd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33941ff1e8aa1285fed306dab11f3d81"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a33941ff1e8aa1285fed306dab11f3d81"></a>
texture2d&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a33941ff1e8aa1285fed306dab11f3d81">generate_mipmaps</a> (texture2d const &amp;Texture, texture2d::size_type BaseLevel, texture2d::size_type MaxLevel, filter Minification)</td></tr>
<tr class="memdesc:a33941ff1e8aa1285fed306dab11f3d81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a texture and generate the mipmaps of the texture from the BaseLevel to the MaxLevel included using the Minification filter. <br /></td></tr>
<tr class="separator:a33941ff1e8aa1285fed306dab11f3d81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5c9024b6fe6c29a6e070c2f5b6c359c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad5c9024b6fe6c29a6e070c2f5b6c359c"></a>
texture2d_array&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#ad5c9024b6fe6c29a6e070c2f5b6c359c">generate_mipmaps</a> (texture2d_array const &amp;Texture, texture2d_array::size_type BaseLayer, texture2d_array::size_type MaxLayer, texture2d_array::size_type BaseLevel, texture2d_array::size_type MaxLevel, filter Minification)</td></tr>
<tr class="memdesc:ad5c9024b6fe6c29a6e070c2f5b6c359c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a texture and generate the mipmaps of the texture from the BaseLayer to the MaxLayer and from the BaseLevel to the MaxLevel included levels using the Minification filter. <br /></td></tr>
<tr class="separator:ad5c9024b6fe6c29a6e070c2f5b6c359c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1827d0afc5f44c0702b7dad13ebfc07e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1827d0afc5f44c0702b7dad13ebfc07e"></a>
texture3d&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a1827d0afc5f44c0702b7dad13ebfc07e">generate_mipmaps</a> (texture3d const &amp;Texture, texture3d::size_type BaseLevel, texture3d::size_type MaxLevel, filter Minification)</td></tr>
<tr class="memdesc:a1827d0afc5f44c0702b7dad13ebfc07e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a texture and generate the mipmaps of the texture from the BaseLevel to the MaxLevel included using the Minification filter. <br /></td></tr>
<tr class="separator:a1827d0afc5f44c0702b7dad13ebfc07e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c8d037e71012ba2d83aff4cb66993cb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1c8d037e71012ba2d83aff4cb66993cb"></a>
texture_cube&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a1c8d037e71012ba2d83aff4cb66993cb">generate_mipmaps</a> (texture_cube const &amp;Texture, texture_cube::size_type BaseFace, texture_cube::size_type MaxFace, texture_cube::size_type BaseLevel, texture_cube::size_type MaxLevel, filter Minification)</td></tr>
<tr class="memdesc:a1c8d037e71012ba2d83aff4cb66993cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a texture and generate the mipmaps of the texture from the BaseLayer to the MaxLayer, from the BaseFace to the MaxFace and from the BaseLevel to the MaxLevel included levels using the Minification filter. <br /></td></tr>
<tr class="separator:a1c8d037e71012ba2d83aff4cb66993cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbf06f6f155382d3a99a95af753aad42"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adbf06f6f155382d3a99a95af753aad42"></a>
texture_cube_array&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#adbf06f6f155382d3a99a95af753aad42">generate_mipmaps</a> (texture_cube_array const &amp;Texture, texture_cube_array::size_type BaseLayer, texture_cube_array::size_type MaxLayer, texture_cube_array::size_type BaseFace, texture_cube_array::size_type MaxFace, texture_cube_array::size_type BaseLevel, texture_cube_array::size_type MaxLevel, filter Minification)</td></tr>
<tr class="memdesc:adbf06f6f155382d3a99a95af753aad42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a texture and generate the mipmaps of the texture from the BaseLayer to the MaxLayer and from the BaseLevel to the MaxLevel included levels using the Minification filter. <br /></td></tr>
<tr class="separator:adbf06f6f155382d3a99a95af753aad42"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Include to generate mipmaps of textures. </p>
<p>Definition in file <a class="el" href="a00034_source.html">generate_mipmaps.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,170 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: generate_mipmaps.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">generate_mipmaps.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00034.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00063.html">texture1d.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00064.html">texture1d_array.hpp</a>&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00065.html">texture2d.hpp</a>&quot;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00066.html">texture2d_array.hpp</a>&quot;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00067.html">texture3d.hpp</a>&quot;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00068.html">texture_cube.hpp</a>&quot;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00069.html">texture_cube_array.hpp</a>&quot;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00047.html">sampler.hpp</a>&quot;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;{</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> texture_type&gt;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; texture_type <a class="code" href="a00074.html#aebc770740435e7a599c0da7f70ae8bba">generate_mipmaps</a>(texture_type <span class="keyword">const</span>&amp; Texture, <a class="code" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification);</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; texture1d <a class="code" href="a00074.html#aebc770740435e7a599c0da7f70ae8bba">generate_mipmaps</a>(</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; texture1d <span class="keyword">const</span>&amp; Texture,</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; texture1d::size_type BaseLevel, texture1d::size_type MaxLevel,</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <a class="code" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification);</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; texture1d_array <a class="code" href="a00074.html#aebc770740435e7a599c0da7f70ae8bba">generate_mipmaps</a>(</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; texture1d_array <span class="keyword">const</span>&amp; Texture,</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; texture1d_array::size_type BaseLayer, texture1d_array::size_type MaxLayer,</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; texture1d_array::size_type BaseLevel, texture1d_array::size_type MaxLevel,</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification);</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; texture2d <a class="code" href="a00074.html#aebc770740435e7a599c0da7f70ae8bba">generate_mipmaps</a>(</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; texture2d <span class="keyword">const</span>&amp; Texture,</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; texture2d::size_type BaseLevel, texture2d::size_type MaxLevel,</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification);</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; texture2d_array <a class="code" href="a00074.html#aebc770740435e7a599c0da7f70ae8bba">generate_mipmaps</a>(</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; texture2d_array <span class="keyword">const</span>&amp; Texture,</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; texture2d_array::size_type BaseLayer, texture2d_array::size_type MaxLayer,</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; texture2d_array::size_type BaseLevel, texture2d_array::size_type MaxLevel,</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; texture3d <a class="code" href="a00074.html#aebc770740435e7a599c0da7f70ae8bba">generate_mipmaps</a>(</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; texture3d <span class="keyword">const</span>&amp; Texture,</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; texture3d::size_type BaseLevel, texture3d::size_type MaxLevel,</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification);</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; texture_cube <a class="code" href="a00074.html#aebc770740435e7a599c0da7f70ae8bba">generate_mipmaps</a>(</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; texture_cube <span class="keyword">const</span>&amp; Texture,</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; texture_cube::size_type BaseFace, texture_cube::size_type MaxFace,</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; texture_cube::size_type BaseLevel, texture_cube::size_type MaxLevel,</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification);</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; texture_cube_array <a class="code" href="a00074.html#aebc770740435e7a599c0da7f70ae8bba">generate_mipmaps</a>(</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; texture_cube_array <span class="keyword">const</span>&amp; Texture,</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; texture_cube_array::size_type BaseLayer, texture_cube_array::size_type MaxLayer,</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; texture_cube_array::size_type BaseFace, texture_cube_array::size_type MaxFace,</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; texture_cube_array::size_type BaseLevel, texture_cube_array::size_type MaxLevel,</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">filter</a> Minification);</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#include &quot;./core/generate_mipmaps.inl&quot;</span></div>
<div class="ttc" id="a00068_html"><div class="ttname"><a href="a00068.html">texture_cube.hpp</a></div><div class="ttdoc">Include to use cube map textures. </div></div>
<div class="ttc" id="a00074_html_aebc770740435e7a599c0da7f70ae8bba"><div class="ttname"><a href="a00074.html#aebc770740435e7a599c0da7f70ae8bba">gli::generate_mipmaps</a></div><div class="ttdeci">texture_type generate_mipmaps(texture_type const &amp;Texture, filter Minification)</div><div class="ttdoc">Allocate a texture and generate all the mipmaps of the texture using the Minification filter...</div></div>
<div class="ttc" id="a00047_html"><div class="ttname"><a href="a00047.html">sampler.hpp</a></div><div class="ttdoc">Include to use wrap modes and the sampler base class. </div></div>
<div class="ttc" id="a00064_html"><div class="ttname"><a href="a00064.html">texture1d_array.hpp</a></div><div class="ttdoc">Include to use 1d array textures. </div></div>
<div class="ttc" id="a00067_html"><div class="ttname"><a href="a00067.html">texture3d.hpp</a></div><div class="ttdoc">Include to use 3d textures. </div></div>
<div class="ttc" id="a00063_html"><div class="ttname"><a href="a00063.html">texture1d.hpp</a></div><div class="ttdoc">Include to use 1d textures. </div></div>
<div class="ttc" id="a00074_html_a610876e02cee64e29fe4376ffeb6b9b9"><div class="ttname"><a href="a00074.html#a610876e02cee64e29fe4376ffeb6b9b9">gli::filter</a></div><div class="ttdeci">filter</div><div class="ttdoc">Texture filtring modes. </div><div class="ttdef"><b>Definition:</b> <a href="a00030_source.html#l00009">filter.hpp:9</a></div></div>
<div class="ttc" id="a00066_html"><div class="ttname"><a href="a00066.html">texture2d_array.hpp</a></div><div class="ttdoc">Include to use 2d array textures. </div></div>
<div class="ttc" id="a00069_html"><div class="ttname"><a href="a00069.html">texture_cube_array.hpp</a></div><div class="ttdoc">Include to use cube map array textures. </div></div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
<div class="ttc" id="a00065_html"><div class="ttname"><a href="a00065.html">texture2d.hpp</a></div><div class="ttdoc">Include to use 2d textures. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

125
external/gli/doc/api/a00035.html vendored 100644
View File

@ -0,0 +1,125 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: gl.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> </div>
<div class="headertitle">
<div class="title">gl.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Include to translate GLI enums to OpenGL enums.
<a href="#details">More...</a></p>
<p><a href="a00035_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00002.html">gl</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translation class to convert GLI enums into OpenGL values. <a href="a00002.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:a00074"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">gli</a></td></tr>
<tr class="memdesc:a00074"><td class="mdescLeft">&#160;</td><td class="mdescRight">Namespace where all the classes and functions provided by GLI are exposed. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Include to translate GLI enums to OpenGL enums. </p>
<p>Definition in file <a class="el" href="a00035_source.html">gl.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,475 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: gl.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">gl.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00035.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00033.html">format.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00061.html">target.hpp</a>&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;array&gt;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;{</div>
<div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="a00002.html"> 13</a></span>&#160; <span class="keyword">class </span><a class="code" href="a00002.html">gl</a></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; {</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">enum</span> internal_format</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; {</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; INTERNAL_RGB_UNORM= 0x1907, <span class="comment">//GL_RGB</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; INTERNAL_BGR_UNORM = 0x80E0, <span class="comment">//GL_BGR</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; INTERNAL_RGBA_UNORM = 0x1908, <span class="comment">//GL_RGBA</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; INTERNAL_BGRA_UNORM = 0x80E1, <span class="comment">//GL_BGRA</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; INTERNAL_BGRA8_UNORM = 0x93A1, <span class="comment">//GL_BGRA8_EXT</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="comment">// unorm formats</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; INTERNAL_R8_UNORM = 0x8229, <span class="comment">//GL_R8</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; INTERNAL_RG8_UNORM = 0x822B, <span class="comment">//GL_RG8</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; INTERNAL_RGB8_UNORM = 0x8051, <span class="comment">//GL_RGB8</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; INTERNAL_RGBA8_UNORM = 0x8058, <span class="comment">//GL_RGBA8</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; INTERNAL_R16_UNORM = 0x822A, <span class="comment">//GL_R16</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; INTERNAL_RG16_UNORM = 0x822C, <span class="comment">//GL_RG16</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; INTERNAL_RGB16_UNORM = 0x8054, <span class="comment">//GL_RGB16</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; INTERNAL_RGBA16_UNORM = 0x805B, <span class="comment">//GL_RGBA16</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; INTERNAL_RGB10A2_UNORM = 0x8059, <span class="comment">//GL_RGB10_A2</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; INTERNAL_RGB10A2_SNORM_EXT = 0xFFFC,</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="comment">// snorm formats</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; INTERNAL_R8_SNORM = 0x8F94, <span class="comment">//GL_R8_SNORM</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; INTERNAL_RG8_SNORM = 0x8F95, <span class="comment">//GL_RG8_SNORM</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; INTERNAL_RGB8_SNORM = 0x8F96, <span class="comment">//GL_RGB8_SNORM</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; INTERNAL_RGBA8_SNORM = 0x8F97, <span class="comment">//GL_RGBA8_SNORM</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; INTERNAL_R16_SNORM = 0x8F98, <span class="comment">//GL_R16_SNORM</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; INTERNAL_RG16_SNORM= 0x8F99, <span class="comment">//GL_RG16_SNORM</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; INTERNAL_RGB16_SNORM= 0x8F9A, <span class="comment">//GL_RGB16_SNORM</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; INTERNAL_RGBA16_SNORM = 0x8F9B, <span class="comment">//GL_RGBA16_SNORM</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// unsigned integer formats</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; INTERNAL_R8U = 0x8232, <span class="comment">//GL_R8UI</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; INTERNAL_RG8U = 0x8238, <span class="comment">//GL_RG8UI</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; INTERNAL_RGB8U = 0x8D7D, <span class="comment">//GL_RGB8UI</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; INTERNAL_RGBA8U = 0x8D7C, <span class="comment">//GL_RGBA8UI</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; INTERNAL_R16U = 0x8234, <span class="comment">//GL_R16UI</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; INTERNAL_RG16U = 0x823A, <span class="comment">//GL_RG16UI</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; INTERNAL_RGB16U = 0x8D77, <span class="comment">//GL_RGB16UI</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; INTERNAL_RGBA16U = 0x8D76, <span class="comment">//GL_RGBA16UI</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; INTERNAL_R32U = 0x8236, <span class="comment">//GL_R32UI</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; INTERNAL_RG32U = 0x823C, <span class="comment">//GL_RG32UI</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; INTERNAL_RGB32U = 0x8D71, <span class="comment">//GL_RGB32UI</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; INTERNAL_RGBA32U = 0x8D70, <span class="comment">//GL_RGBA32UI</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; INTERNAL_RGB10A2U = 0x906F, <span class="comment">//GL_RGB10_A2UI</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; INTERNAL_RGB10A2I_EXT = 0xFFFB,</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// signed integer formats</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; INTERNAL_R8I = 0x8231, <span class="comment">//GL_R8I</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; INTERNAL_RG8I = 0x8237, <span class="comment">//GL_RG8I</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; INTERNAL_RGB8I = 0x8D8F, <span class="comment">//GL_RGB8I</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; INTERNAL_RGBA8I = 0x8D8E, <span class="comment">//GL_RGBA8I</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; INTERNAL_R16I = 0x8233, <span class="comment">//GL_R16I</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; INTERNAL_RG16I = 0x8239, <span class="comment">//GL_RG16I</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; INTERNAL_RGB16I = 0x8D89, <span class="comment">//GL_RGB16I</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; INTERNAL_RGBA16I = 0x8D88, <span class="comment">//GL_RGBA16I</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; INTERNAL_R32I = 0x8235, <span class="comment">//GL_R32I</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; INTERNAL_RG32I = 0x823B, <span class="comment">//GL_RG32I</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; INTERNAL_RGB32I = 0x8D83, <span class="comment">//GL_RGB32I</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; INTERNAL_RGBA32I = 0x8D82, <span class="comment">//GL_RGBA32I</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// Floating formats</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; INTERNAL_R16F = 0x822D, <span class="comment">//GL_R16F</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; INTERNAL_RG16F = 0x822F, <span class="comment">//GL_RG16F</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; INTERNAL_RGB16F = 0x881B, <span class="comment">//GL_RGB16F</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; INTERNAL_RGBA16F = 0x881A, <span class="comment">//GL_RGBA16F</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; INTERNAL_R32F = 0x822E, <span class="comment">//GL_R32F</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; INTERNAL_RG32F = 0x8230, <span class="comment">//GL_RG32F</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; INTERNAL_RGB32F = 0x8815, <span class="comment">//GL_RGB32F</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; INTERNAL_RGBA32F = 0x8814, <span class="comment">//GL_RGBA32F</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; INTERNAL_R64F_EXT = 0xFFFA, <span class="comment">//GL_R64F</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; INTERNAL_RG64F_EXT = 0xFFF9, <span class="comment">//GL_RG64F</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; INTERNAL_RGB64F_EXT = 0xFFF8, <span class="comment">//GL_RGB64F</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; INTERNAL_RGBA64F_EXT = 0xFFF7, <span class="comment">//GL_RGBA64F</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">// sRGB formats</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; INTERNAL_SR8 = 0x8FBD, <span class="comment">//GL_SR8_EXT</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; INTERNAL_SRG8 = 0x8FBE, <span class="comment">//GL_SRG8_EXT</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; INTERNAL_SRGB8 = 0x8C41, <span class="comment">//GL_SRGB8</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; INTERNAL_SRGB8_ALPHA8 = 0x8C43, <span class="comment">//GL_SRGB8_ALPHA8</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// Packed formats</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; INTERNAL_RGB9E5 = 0x8C3D, <span class="comment">//GL_RGB9_E5</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; INTERNAL_RG11B10F = 0x8C3A, <span class="comment">//GL_R11F_G11F_B10F</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; INTERNAL_RG3B2 = 0x2A10, <span class="comment">//GL_R3_G3_B2</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; INTERNAL_R5G6B5 = 0x8D62, <span class="comment">//GL_RGB565</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; INTERNAL_RGB5A1 = 0x8057, <span class="comment">//GL_RGB5_A1</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; INTERNAL_RGBA4 = 0x8056, <span class="comment">//GL_RGBA4</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; INTERNAL_RG4_EXT = 0xFFFE,</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// Luminance Alpha formats</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; INTERNAL_LA4 = 0x8043, <span class="comment">//GL_LUMINANCE4_ALPHA4</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; INTERNAL_L8 = 0x8040, <span class="comment">//GL_LUMINANCE8</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; INTERNAL_A8 = 0x803C, <span class="comment">//GL_ALPHA8</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; INTERNAL_LA8 = 0x8045, <span class="comment">//GL_LUMINANCE8_ALPHA8</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; INTERNAL_L16 = 0x8042, <span class="comment">//GL_LUMINANCE16</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; INTERNAL_A16 = 0x803E, <span class="comment">//GL_ALPHA16</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; INTERNAL_LA16 = 0x8048, <span class="comment">//GL_LUMINANCE16_ALPHA16</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// Depth formats</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; INTERNAL_D16 = 0x81A5, <span class="comment">//GL_DEPTH_COMPONENT16</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; INTERNAL_D24 = 0x81A6, <span class="comment">//GL_DEPTH_COMPONENT24</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; INTERNAL_D16S8_EXT = 0xFFF6,</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; INTERNAL_D24S8 = 0x88F0, <span class="comment">//GL_DEPTH24_STENCIL8</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; INTERNAL_D32 = 0x81A7, <span class="comment">//GL_DEPTH_COMPONENT32</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; INTERNAL_D32F = 0x8CAC, <span class="comment">//GL_DEPTH_COMPONENT32F</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; INTERNAL_D32FS8X24 = 0x8CAD, <span class="comment">//GL_DEPTH32F_STENCIL8</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; INTERNAL_S8_EXT = 0x8D48, <span class="comment">//GL_STENCIL_INDEX8</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="comment">// Compressed formats</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; INTERNAL_RGB_DXT1 = 0x83F0, <span class="comment">//GL_COMPRESSED_RGB_S3TC_DXT1_EXT</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; INTERNAL_RGBA_DXT1 = 0x83F1, <span class="comment">//GL_COMPRESSED_RGBA_S3TC_DXT1_EXT</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; INTERNAL_RGBA_DXT3 = 0x83F2, <span class="comment">//GL_COMPRESSED_RGBA_S3TC_DXT3_EXT</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; INTERNAL_RGBA_DXT5 = 0x83F3, <span class="comment">//GL_COMPRESSED_RGBA_S3TC_DXT5_EXT</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; INTERNAL_R_ATI1N_UNORM = 0x8DBB, <span class="comment">//GL_COMPRESSED_RED_RGTC1</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; INTERNAL_R_ATI1N_SNORM = 0x8DBC, <span class="comment">//GL_COMPRESSED_SIGNED_RED_RGTC1</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; INTERNAL_RG_ATI2N_UNORM = 0x8DBD, <span class="comment">//GL_COMPRESSED_RG_RGTC2</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; INTERNAL_RG_ATI2N_SNORM = 0x8DBE, <span class="comment">//GL_COMPRESSED_SIGNED_RG_RGTC2</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; INTERNAL_RGB_BP_UNSIGNED_FLOAT = 0x8E8F, <span class="comment">//GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; INTERNAL_RGB_BP_SIGNED_FLOAT = 0x8E8E, <span class="comment">//GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; INTERNAL_RGB_BP_UNORM = 0x8E8C, <span class="comment">//GL_COMPRESSED_RGBA_BPTC_UNORM</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; INTERNAL_RGB_PVRTC_4BPPV1 = 0x8C00, <span class="comment">//GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; INTERNAL_RGB_PVRTC_2BPPV1 = 0x8C01, <span class="comment">//GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; INTERNAL_RGBA_PVRTC_4BPPV1 = 0x8C02, <span class="comment">//GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; INTERNAL_RGBA_PVRTC_2BPPV1 = 0x8C03, <span class="comment">//GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; INTERNAL_RGBA_PVRTC_4BPPV2 = 0x9137, <span class="comment">//GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; INTERNAL_RGBA_PVRTC_2BPPV2 = 0x9138, <span class="comment">//GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; INTERNAL_ATC_RGB = 0x8C92, <span class="comment">//GL_ATC_RGB_AMD</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; INTERNAL_ATC_RGBA_EXPLICIT_ALPHA = 0x8C93, <span class="comment">//GL_ATC_RGBA_EXPLICIT_ALPHA_AMD</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; INTERNAL_ATC_RGBA_INTERPOLATED_ALPHA = 0x87EE, <span class="comment">//GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; INTERNAL_RGB_ETC = 0x8D64, <span class="comment">//GL_COMPRESSED_RGB8_ETC1</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; INTERNAL_RGB_ETC2 = 0x9274, <span class="comment">//GL_COMPRESSED_RGB8_ETC2</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; INTERNAL_RGBA_PUNCHTHROUGH_ETC2 = 0x9276, <span class="comment">//GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; INTERNAL_RGBA_ETC2 = 0x9278, <span class="comment">//GL_COMPRESSED_RGBA8_ETC2_EAC</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; INTERNAL_R11_EAC = 0x9270, <span class="comment">//GL_COMPRESSED_R11_EAC</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; INTERNAL_SIGNED_R11_EAC = 0x9271, <span class="comment">//GL_COMPRESSED_SIGNED_R11_EAC</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; INTERNAL_RG11_EAC = 0x9272, <span class="comment">//GL_COMPRESSED_RG11_EAC</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; INTERNAL_SIGNED_RG11_EAC = 0x9273, <span class="comment">//GL_COMPRESSED_SIGNED_RG11_EAC</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; INTERNAL_RGBA_ASTC_4x4 = 0x93B0, <span class="comment">//GL_COMPRESSED_RGBA_ASTC_4x4_KHR</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; INTERNAL_RGBA_ASTC_5x4 = 0x93B1, <span class="comment">//GL_COMPRESSED_RGBA_ASTC_5x4_KHR</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; INTERNAL_RGBA_ASTC_5x5 = 0x93B2, <span class="comment">//GL_COMPRESSED_RGBA_ASTC_5x5_KHR</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; INTERNAL_RGBA_ASTC_6x5 = 0x93B3, <span class="comment">//GL_COMPRESSED_RGBA_ASTC_6x5_KHR</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; INTERNAL_RGBA_ASTC_6x6 = 0x93B4, <span class="comment">//GL_COMPRESSED_RGBA_ASTC_6x6_KHR</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; INTERNAL_RGBA_ASTC_8x5 = 0x93B5, <span class="comment">//GL_COMPRESSED_RGBA_ASTC_8x5_KHR</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; INTERNAL_RGBA_ASTC_8x6 = 0x93B6, <span class="comment">//GL_COMPRESSED_RGBA_ASTC_8x6_KHR</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; INTERNAL_RGBA_ASTC_8x8 = 0x93B7, <span class="comment">//GL_COMPRESSED_RGBA_ASTC_8x8_KHR</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; INTERNAL_RGBA_ASTC_10x5 = 0x93B8, <span class="comment">//GL_COMPRESSED_RGBA_ASTC_10x5_KHR</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; INTERNAL_RGBA_ASTC_10x6 = 0x93B9, <span class="comment">//GL_COMPRESSED_RGBA_ASTC_10x6_KHR</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; INTERNAL_RGBA_ASTC_10x8 = 0x93BA, <span class="comment">//GL_COMPRESSED_RGBA_ASTC_10x8_KHR</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; INTERNAL_RGBA_ASTC_10x10 = 0x93BB, <span class="comment">//GL_COMPRESSED_RGBA_ASTC_10x10_KHR</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; INTERNAL_RGBA_ASTC_12x10 = 0x93BC, <span class="comment">//GL_COMPRESSED_RGBA_ASTC_12x10_KHR</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; INTERNAL_RGBA_ASTC_12x12 = 0x93BD, <span class="comment">//GL_COMPRESSED_RGBA_ASTC_12x12_KHR</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="comment">// sRGB formats</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; INTERNAL_SRGB_DXT1 = 0x8C4C, <span class="comment">//GL_COMPRESSED_SRGB_S3TC_DXT1_EXT</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; INTERNAL_SRGB_ALPHA_DXT1 = 0x8C4D, <span class="comment">//GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; INTERNAL_SRGB_ALPHA_DXT3 = 0x8C4E, <span class="comment">//GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; INTERNAL_SRGB_ALPHA_DXT5 = 0x8C4F, <span class="comment">//GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; INTERNAL_SRGB_BP_UNORM = 0x8E8D, <span class="comment">//GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; INTERNAL_SRGB_PVRTC_2BPPV1 = 0x8A54, <span class="comment">//GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; INTERNAL_SRGB_PVRTC_4BPPV1 = 0x8A55, <span class="comment">//GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; INTERNAL_SRGB_ALPHA_PVRTC_2BPPV1 = 0x8A56, <span class="comment">//GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; INTERNAL_SRGB_ALPHA_PVRTC_4BPPV1 = 0x8A57, <span class="comment">//GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; INTERNAL_SRGB_ALPHA_PVRTC_2BPPV2 = 0x93F0, <span class="comment">//COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; INTERNAL_SRGB_ALPHA_PVRTC_4BPPV2 = 0x93F1, <span class="comment">//GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; INTERNAL_SRGB8_ETC2 = 0x9275, <span class="comment">//GL_COMPRESSED_SRGB8_ETC2</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; INTERNAL_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277, <span class="comment">//GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; INTERNAL_SRGB8_ALPHA8_ETC2_EAC = 0x9279, <span class="comment">//GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; INTERNAL_SRGB8_ALPHA8_ASTC_4x4 = 0x93D0, <span class="comment">//GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; INTERNAL_SRGB8_ALPHA8_ASTC_5x4 = 0x93D1, <span class="comment">//GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; INTERNAL_SRGB8_ALPHA8_ASTC_5x5 = 0x93D2, <span class="comment">//GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; INTERNAL_SRGB8_ALPHA8_ASTC_6x5 = 0x93D3, <span class="comment">//GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; INTERNAL_SRGB8_ALPHA8_ASTC_6x6 = 0x93D4, <span class="comment">//GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; INTERNAL_SRGB8_ALPHA8_ASTC_8x5 = 0x93D5, <span class="comment">//GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; INTERNAL_SRGB8_ALPHA8_ASTC_8x6 = 0x93D6, <span class="comment">//GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; INTERNAL_SRGB8_ALPHA8_ASTC_8x8 = 0x93D7, <span class="comment">//GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; INTERNAL_SRGB8_ALPHA8_ASTC_10x5 = 0x93D8, <span class="comment">//GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; INTERNAL_SRGB8_ALPHA8_ASTC_10x6 = 0x93D9, <span class="comment">//GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; INTERNAL_SRGB8_ALPHA8_ASTC_10x8 = 0x93DA, <span class="comment">//GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; INTERNAL_SRGB8_ALPHA8_ASTC_10x10 = 0x93DB, <span class="comment">//GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; INTERNAL_SRGB8_ALPHA8_ASTC_12x10 = 0x93DC, <span class="comment">//GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; INTERNAL_SRGB8_ALPHA8_ASTC_12x12 = 0x93DD, <span class="comment">//GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; </div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; INTERNAL_ALPHA8 = 0x803C,</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; INTERNAL_ALPHA16 = 0x803E,</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; INTERNAL_LUMINANCE8 = 0x8040,</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; INTERNAL_LUMINANCE16 = 0x8042,</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; INTERNAL_LUMINANCE8_ALPHA8 = 0x8045,</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; INTERNAL_LUMINANCE16_ALPHA16 = 0x8048,</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; </div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; INTERNAL_R8_USCALED_GTC = 0xF000,</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; INTERNAL_R8_SSCALED_GTC,</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; INTERNAL_RG8_USCALED_GTC,</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; INTERNAL_RG8_SSCALED_GTC,</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; INTERNAL_RGB8_USCALED_GTC,</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; INTERNAL_RGB8_SSCALED_GTC,</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; INTERNAL_RGBA8_USCALED_GTC,</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; INTERNAL_RGBA8_SSCALED_GTC,</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; INTERNAL_RGB10A2_USCALED_GTC,</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; INTERNAL_RGB10A2_SSCALED_GTC,</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; INTERNAL_R16_USCALED_GTC,</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; INTERNAL_R16_SSCALED_GTC,</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; INTERNAL_RG16_USCALED_GTC,</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; INTERNAL_RG16_SSCALED_GTC,</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; INTERNAL_RGB16_USCALED_GTC,</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; INTERNAL_RGB16_SSCALED_GTC,</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; INTERNAL_RGBA16_USCALED_GTC,</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; INTERNAL_RGBA16_SSCALED_GTC,</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; };</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">enum</span> external_format</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; EXTERNAL_NONE = 0, <span class="comment">//GL_NONE</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; EXTERNAL_RED = 0x1903, <span class="comment">//GL_RED</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; EXTERNAL_RG = 0x8227, <span class="comment">//GL_RG</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; EXTERNAL_RGB= 0x1907, <span class="comment">//GL_RGB</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; EXTERNAL_BGR = 0x80E0, <span class="comment">//GL_BGR</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; EXTERNAL_RGBA = 0x1908, <span class="comment">//GL_RGBA</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; EXTERNAL_BGRA = 0x80E1, <span class="comment">//GL_BGRA</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; EXTERNAL_RED_INTEGER = 0x8D94, <span class="comment">//GL_RED_INTEGER</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; EXTERNAL_RG_INTEGER = 0x8228, <span class="comment">//GL_RG_INTEGER</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; EXTERNAL_RGB_INTEGER = 0x8D98, <span class="comment">//GL_RGB_INTEGER</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; EXTERNAL_BGR_INTEGER = 0x8D9A, <span class="comment">//GL_BGR_INTEGER</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; EXTERNAL_RGBA_INTEGER = 0x8D99, <span class="comment">//GL_RGBA_INTEGER</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; EXTERNAL_BGRA_INTEGER = 0x8D9B, <span class="comment">//GL_BGRA_INTEGER</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; EXTERNAL_DEPTH = 0x1902, <span class="comment">//GL_DEPTH_COMPONENT</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; EXTERNAL_DEPTH_STENCIL = 0x84F9, <span class="comment">//GL_DEPTH_STENCIL</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; EXTERNAL_STENCIL = 0x1901, <span class="comment">//GL_STENCIL_INDEX</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; EXTERNAL_LUMINANCE = 0x1909, <span class="comment">//GL_LUMINANCE</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; EXTERNAL_ALPHA = 0x1906, <span class="comment">//GL_ALPHA</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; EXTERNAL_LUMINANCE_ALPHA = 0x190A, <span class="comment">//GL_LUMINANCE_ALPHA</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; EXTERNAL_SRGB_EXT = 0x8C40, <span class="comment">//SRGB_EXT</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; EXTERNAL_SRGB_ALPHA_EXT = 0x8C42 <span class="comment">//SRGB_ALPHA_EXT</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; };</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">enum</span> type_format</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; {</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; TYPE_NONE = 0, <span class="comment">//GL_NONE</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; TYPE_I8 = 0x1400, <span class="comment">//GL_BYTE</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; TYPE_U8 = 0x1401, <span class="comment">//GL_UNSIGNED_BYTE</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; TYPE_I16 = 0x1402, <span class="comment">//GL_SHORT</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; TYPE_U16 = 0x1403, <span class="comment">//GL_UNSIGNED_SHORT</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; TYPE_I32 = 0x1404, <span class="comment">//GL_INT</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; TYPE_U32 = 0x1405, <span class="comment">//GL_UNSIGNED_INT</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; TYPE_I64 = 0x140E, <span class="comment">//GL_INT64_ARB</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; TYPE_U64 = 0x140F, <span class="comment">//GL_UNSIGNED_INT64_ARB</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; TYPE_F16 = 0x140B, <span class="comment">//GL_HALF_FLOAT</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; TYPE_F16_OES = 0x8D61, <span class="comment">//GL_HALF_FLOAT_OES</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; TYPE_F32 = 0x1406, <span class="comment">//GL_FLOAT</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; TYPE_F64 = 0x140A, <span class="comment">//GL_DOUBLE</span></div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; TYPE_UINT32_RGB9_E5_REV = 0x8C3E, <span class="comment">//GL_UNSIGNED_INT_5_9_9_9_REV</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; TYPE_UINT32_RG11B10F_REV = 0x8C3B, <span class="comment">//GL_UNSIGNED_INT_10F_11F_11F_REV</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; TYPE_UINT8_RG3B2 = 0x8032, <span class="comment">//GL_UNSIGNED_BYTE_3_3_2</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; TYPE_UINT8_RG3B2_REV = 0x8362, <span class="comment">//GL_UNSIGNED_BYTE_2_3_3_REV</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; TYPE_UINT16_RGB5A1 = 0x8034, <span class="comment">//GL_UNSIGNED_SHORT_5_5_5_1</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; TYPE_UINT16_RGB5A1_REV = 0x8366, <span class="comment">//GL_UNSIGNED_SHORT_1_5_5_5_REV</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; TYPE_UINT16_R5G6B5 = 0x8363, <span class="comment">//GL_UNSIGNED_SHORT_5_6_5</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; TYPE_UINT16_R5G6B5_REV = 0x8364, <span class="comment">//GL_UNSIGNED_SHORT_5_6_5_REV</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; TYPE_UINT16_RGBA4 = 0x8033, <span class="comment">//GL_UNSIGNED_SHORT_4_4_4_4</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; TYPE_UINT16_RGBA4_REV = 0x8365, <span class="comment">//GL_UNSIGNED_SHORT_4_4_4_4_REV</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; TYPE_UINT32_RGBA8 = 0x8035, <span class="comment">//GL_UNSIGNED_SHORT_8_8_8_8</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; TYPE_UINT32_RGBA8_REV = 0x8367, <span class="comment">//GL_UNSIGNED_SHORT_8_8_8_8_REV</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; TYPE_UINT32_RGB10A2 = 0x8036, <span class="comment">//GL_UNSIGNED_INT_10_10_10_2</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; TYPE_UINT32_RGB10A2_REV = 0x8368, <span class="comment">//GL_UNSIGNED_INT_2_10_10_10_REV</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; TYPE_UINT8_RG4_REV_GTC = 0xFFFD,</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; TYPE_UINT16_A1RGB5_GTC = 0xFFFC</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; };</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">enum</span> target</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; {</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; TARGET_1D = 0x0DE0,</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; TARGET_1D_ARRAY = 0x8C18,</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; TARGET_2D = 0x0DE1,</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; TARGET_2D_ARRAY = 0x8C1A,</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; TARGET_3D = 0x806F,</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; TARGET_RECT = 0x84F5,</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; TARGET_RECT_ARRAY = 0x84F5, <span class="comment">// Not supported by OpenGL</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; TARGET_CUBE = 0x8513,</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; TARGET_CUBE_ARRAY = 0x9009</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; };</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keyword">enum</span> swizzle</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; {</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; SWIZZLE_RED = 0x1903, <span class="comment">//GL_RED</span></div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; SWIZZLE_GREEN = 0x1904, <span class="comment">//GL_GREEN</span></div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; SWIZZLE_BLUE = 0x1905, <span class="comment">//GL_BLUE</span></div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; SWIZZLE_ALPHA = 0x1906, <span class="comment">//GL_ALPHA</span></div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; SWIZZLE_ZERO = 0x0000, <span class="comment">//GL_ZERO</span></div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; SWIZZLE_ONE = 0x0001, <span class="comment">//GL_ONE</span></div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; };</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keyword">enum</span> profile</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; {</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; PROFILE_ES20,</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; PROFILE_ES30,</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; PROFILE_GL32,</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; PROFILE_GL33,</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; PROFILE_KTX</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; };</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keyword">typedef</span> glm::tvec4&lt;int&gt; swizzles;</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keyword">struct </span><a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a></div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; {</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; internal_format Internal;</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; external_format External;</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; type_format Type;</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; swizzles Swizzles;</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; };</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <a class="code" href="a00002.html">gl</a>(profile Profile);</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; target <span class="keyword">const</span>&amp; <a class="code" href="a00002.html#ab38a3e0b9878adb8a6de97c0c00f3cff">translate</a>(<a class="code" href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">gli::target</a> Target) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format</a> <a class="code" href="a00002.html#ab38a3e0b9878adb8a6de97c0c00f3cff">translate</a>(<a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">gli::format</a> Format, gli::swizzles <span class="keyword">const</span>&amp; Swizzle) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">gli::format</a> <a class="code" href="a00002.html#a9f79c9677bd9cd22648723a4d06612ee">find</a>(internal_format InternalFormat, external_format ExternalFormat, type_format Type);</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keyword">struct </span>format_desc</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; {</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; internal_format Internal;</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; external_format External;</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; type_format Type;</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Properties;</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; };</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordtype">bool</span> has_swizzle(profile Profile)<span class="keyword"> const</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">return</span> Profile == PROFILE_ES30 || Profile == PROFILE_GL33;</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; }</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; gl::swizzles compute_swizzle(format_desc <span class="keyword">const</span>&amp; FormatDesc, gli::swizzles <span class="keyword">const</span>&amp; Swizzle) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; std::array&lt;format_desc, FORMAT_COUNT&gt; FormatDesc;</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; profile Profile;</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; };</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor">#include &quot;./core/gl.inl&quot;</span></div>
<div class="ttc" id="a00074_html_a387137c43ed9616d39ba90e890d181eb"><div class="ttname"><a href="a00074.html#a387137c43ed9616d39ba90e890d181eb">gli::format</a></div><div class="ttdeci">format</div><div class="ttdoc">Texture data format. </div><div class="ttdef"><b>Definition:</b> <a href="a00033_source.html#l00012">format.hpp:12</a></div></div>
<div class="ttc" id="a00002_html_ab38a3e0b9878adb8a6de97c0c00f3cff"><div class="ttname"><a href="a00002.html#ab38a3e0b9878adb8a6de97c0c00f3cff">gli::gl::translate</a></div><div class="ttdeci">target const &amp; translate(gli::target Target) const </div><div class="ttdoc">Convert GLI targets into OpenGL texture targets. </div></div>
<div class="ttc" id="a00002_html_a9f79c9677bd9cd22648723a4d06612ee"><div class="ttname"><a href="a00002.html#a9f79c9677bd9cd22648723a4d06612ee">gli::gl::find</a></div><div class="ttdeci">gli::format find(internal_format InternalFormat, external_format ExternalFormat, type_format Type)</div><div class="ttdoc">Convert an OpenGL format into a GLI format. </div></div>
<div class="ttc" id="a00061_html"><div class="ttname"><a href="a00061.html">target.hpp</a></div><div class="ttdoc">Include to use the target enum and query properties of targets. </div></div>
<div class="ttc" id="a00074_html_a5d2c023108742a1ce78ba9823c06ea35"><div class="ttname"><a href="a00074.html#a5d2c023108742a1ce78ba9823c06ea35">gli::target</a></div><div class="ttdeci">target</div><div class="ttdoc">Texture target: type/shape of the texture storage_linear. </div><div class="ttdef"><b>Definition:</b> <a href="a00061_source.html#l00009">target.hpp:9</a></div></div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
<div class="ttc" id="a00033_html"><div class="ttname"><a href="a00033.html">format.hpp</a></div><div class="ttdoc">Include to use the format enum and query properties of formats. </div></div>
<div class="ttc" id="a00002_html"><div class="ttname"><a href="a00002.html">gli::gl</a></div><div class="ttdoc">Translation class to convert GLI enums into OpenGL values. </div><div class="ttdef"><b>Definition:</b> <a href="a00035_source.html#l00013">gl.hpp:13</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

118
external/gli/doc/api/a00036.html vendored 100644
View File

@ -0,0 +1,118 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: gli.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> </div>
<div class="headertitle">
<div class="title">gli.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Include to include everything in GLI which is not recommendated due to compilation time cost.
<a href="#details">More...</a></p>
<p><a href="a00036_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:a00074"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">gli</a></td></tr>
<tr class="memdesc:a00074"><td class="mdescLeft">&#160;</td><td class="mdescRight">Namespace where all the classes and functions provided by GLI are exposed. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Include to include everything in GLI which is not recommendated due to compilation time cost. </p>
<p>Definition in file <a class="el" href="a00036_source.html">gli.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,179 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: gli.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">gli.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00036.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#define GLI_VERSION 82</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#define GLI_VERSION_MAJOR 0</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#define GLI_VERSION_MINOR 8</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define GLI_VERSION_PATCH 2</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define GLI_VERSION_REVISION 0</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00033.html">format.hpp</a>&quot;</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00061.html">target.hpp</a>&quot;</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00038.html">levels.hpp</a>&quot;</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00037.html">image.hpp</a>&quot;</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00062.html">texture.hpp</a>&quot;</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00063.html">texture1d.hpp</a>&quot;</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00064.html">texture1d_array.hpp</a>&quot;</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00065.html">texture2d.hpp</a>&quot;</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00066.html">texture2d_array.hpp</a>&quot;</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00067.html">texture3d.hpp</a>&quot;</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00068.html">texture_cube.hpp</a>&quot;</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00069.html">texture_cube_array.hpp</a>&quot;</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00048.html">sampler1d.hpp</a>&quot;</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00049.html">sampler1d_array.hpp</a>&quot;</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00050.html">sampler2d.hpp</a>&quot;</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00051.html">sampler2d_array.hpp</a>&quot;</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00052.html">sampler3d.hpp</a>&quot;</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00053.html">sampler_cube.hpp</a>&quot;</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00054.html">sampler_cube_array.hpp</a>&quot;</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00027.html">duplicate.hpp</a>&quot;</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00072.html">view.hpp</a>&quot;</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00022.html">comparison.hpp</a>&quot;</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00046.html">reduce.hpp</a>&quot;</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00070.html">transform.hpp</a>&quot;</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00039.html">load.hpp</a>&quot;</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00055.html">save.hpp</a>&quot;</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00035.html">gl.hpp</a>&quot;</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00028.html">dx.hpp</a>&quot;</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#include &quot;./core/flip.hpp&quot;</span></div>
<div class="ttc" id="a00022_html"><div class="ttname"><a href="a00022.html">comparison.hpp</a></div><div class="ttdoc">Include to use operators to compare whether two textures or images are equal. </div></div>
<div class="ttc" id="a00068_html"><div class="ttname"><a href="a00068.html">texture_cube.hpp</a></div><div class="ttdoc">Include to use cube map textures. </div></div>
<div class="ttc" id="a00039_html"><div class="ttname"><a href="a00039.html">load.hpp</a></div><div class="ttdoc">Include to load DDS, KTX or KMG textures from files or memory. </div></div>
<div class="ttc" id="a00027_html"><div class="ttname"><a href="a00027.html">duplicate.hpp</a></div><div class="ttdoc">Include to duplicate textures, images or a subset of either textures or an image. ...</div></div>
<div class="ttc" id="a00064_html"><div class="ttname"><a href="a00064.html">texture1d_array.hpp</a></div><div class="ttdoc">Include to use 1d array textures. </div></div>
<div class="ttc" id="a00035_html"><div class="ttname"><a href="a00035.html">gl.hpp</a></div><div class="ttdoc">Include to translate GLI enums to OpenGL enums. </div></div>
<div class="ttc" id="a00062_html"><div class="ttname"><a href="a00062.html">texture.hpp</a></div><div class="ttdoc">Include to use generic textures which can represent any texture target but they don&#39;t have target spe...</div></div>
<div class="ttc" id="a00050_html"><div class="ttname"><a href="a00050.html">sampler2d.hpp</a></div><div class="ttdoc">Include to sample 2d textures. </div></div>
<div class="ttc" id="a00067_html"><div class="ttname"><a href="a00067.html">texture3d.hpp</a></div><div class="ttdoc">Include to use 3d textures. </div></div>
<div class="ttc" id="a00055_html"><div class="ttname"><a href="a00055.html">save.hpp</a></div><div class="ttdoc">Include to save DDS, KTX or KMG textures to files or memory. </div></div>
<div class="ttc" id="a00070_html"><div class="ttname"><a href="a00070.html">transform.hpp</a></div><div class="ttdoc">Include to perform arithmetic per texel between two textures. </div></div>
<div class="ttc" id="a00063_html"><div class="ttname"><a href="a00063.html">texture1d.hpp</a></div><div class="ttdoc">Include to use 1d textures. </div></div>
<div class="ttc" id="a00038_html"><div class="ttname"><a href="a00038.html">levels.hpp</a></div><div class="ttdoc">Include to compute the number of mipmaps levels necessary to create a mipmap complete texture...</div></div>
<div class="ttc" id="a00061_html"><div class="ttname"><a href="a00061.html">target.hpp</a></div><div class="ttdoc">Include to use the target enum and query properties of targets. </div></div>
<div class="ttc" id="a00046_html"><div class="ttname"><a href="a00046.html">reduce.hpp</a></div><div class="ttdoc">Include to perform reduction operations. </div></div>
<div class="ttc" id="a00049_html"><div class="ttname"><a href="a00049.html">sampler1d_array.hpp</a></div><div class="ttdoc">Include to sample 1d array textures. </div></div>
<div class="ttc" id="a00066_html"><div class="ttname"><a href="a00066.html">texture2d_array.hpp</a></div><div class="ttdoc">Include to use 2d array textures. </div></div>
<div class="ttc" id="a00037_html"><div class="ttname"><a href="a00037.html">image.hpp</a></div><div class="ttdoc">Include to use images, a representation of a single texture level. </div></div>
<div class="ttc" id="a00054_html"><div class="ttname"><a href="a00054.html">sampler_cube_array.hpp</a></div><div class="ttdoc">Include to sample cube map array textures. </div></div>
<div class="ttc" id="a00052_html"><div class="ttname"><a href="a00052.html">sampler3d.hpp</a></div><div class="ttdoc">Include to sample 3d textures. </div></div>
<div class="ttc" id="a00069_html"><div class="ttname"><a href="a00069.html">texture_cube_array.hpp</a></div><div class="ttdoc">Include to use cube map array textures. </div></div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
<div class="ttc" id="a00072_html"><div class="ttname"><a href="a00072.html">view.hpp</a></div><div class="ttdoc">Include create views of textures, either to isolate a subset or to reinterpret data without memory co...</div></div>
<div class="ttc" id="a00033_html"><div class="ttname"><a href="a00033.html">format.hpp</a></div><div class="ttdoc">Include to use the format enum and query properties of formats. </div></div>
<div class="ttc" id="a00065_html"><div class="ttname"><a href="a00065.html">texture2d.hpp</a></div><div class="ttdoc">Include to use 2d textures. </div></div>
<div class="ttc" id="a00053_html"><div class="ttname"><a href="a00053.html">sampler_cube.hpp</a></div><div class="ttdoc">Include to sample cube map textures. </div></div>
<div class="ttc" id="a00028_html"><div class="ttname"><a href="a00028.html">dx.hpp</a></div><div class="ttdoc">Include to translate GLI enums to DirectX enums. </div></div>
<div class="ttc" id="a00051_html"><div class="ttname"><a href="a00051.html">sampler2d_array.hpp</a></div><div class="ttdoc">Include to sample 2d array textures. </div></div>
<div class="ttc" id="a00048_html"><div class="ttname"><a href="a00048.html">sampler1d.hpp</a></div><div class="ttdoc">Include to sample 1d textures. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

125
external/gli/doc/api/a00037.html vendored 100644
View File

@ -0,0 +1,125 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: image.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> </div>
<div class="headertitle">
<div class="title">image.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Include to use images, a representation of a single texture level.
<a href="#details">More...</a></p>
<p><a href="a00037_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00003.html">image</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Image, representation for a single texture level. <a href="a00003.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:a00074"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">gli</a></td></tr>
<tr class="memdesc:a00074"><td class="mdescLeft">&#160;</td><td class="mdescRight">Namespace where all the classes and functions provided by GLI are exposed. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Include to use images, a representation of a single texture level. </p>
<p>Definition in file <a class="el" href="a00037_source.html">image.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,193 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: image.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">image.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00037.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;./core/storage_linear.hpp&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div>
<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="a00003.html"> 11</a></span>&#160; <span class="keyword">class </span><a class="code" href="a00003.html">image</a></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; {</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a00013.html">texture1d</a>;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a00015.html">texture2d</a>;</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a00017.html">texture3d</a>;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> <a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">gli::format</a> <a class="code" href="a00074.html#a387137c43ed9616d39ba90e890d181eb">format_type</a>;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">typedef</span> storage_linear::extent_type extent_type;</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">typedef</span> storage_linear::data_type data_type;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <a class="code" href="a00003.html#ab4f40c94d3427e415d291c68d3e67cfa">image</a>();</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">explicit</span> <a class="code" href="a00003.html#ab4f40c94d3427e415d291c68d3e67cfa">image</a>(format_type Format, extent_type <span class="keyword">const</span>&amp; Extent);</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">explicit</span> <a class="code" href="a00003.html#ab4f40c94d3427e415d291c68d3e67cfa">image</a>(<a class="code" href="a00003.html">image</a> <span class="keyword">const</span>&amp; Image, format_type Format);</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="a00003.html#ac6e61de369e994009e36f344f99c15ad">empty</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; format_type <a class="code" href="a00003.html#ad94928ca00873970455c1fb2d3c03fd8">format</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; extent_type <a class="code" href="a00003.html#a4c9de4b32898ed383505745972d6c009">extent</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; size_type <a class="code" href="a00003.html#a503ab01f6c0142145d3434f6924714e7">size</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; size_type <a class="code" href="a00003.html#a503ab01f6c0142145d3434f6924714e7">size</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordtype">void</span>* <a class="code" href="a00003.html#a3f2c67dc864c6b6e705710853b5568ef">data</a>();</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">void</span> <span class="keyword">const</span>* <a class="code" href="a00003.html#a3f2c67dc864c6b6e705710853b5568ef">data</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; genType* <a class="code" href="a00003.html#a3f2c67dc864c6b6e705710853b5568ef">data</a>();</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; genType <span class="keyword">const</span>* <a class="code" href="a00003.html#a3f2c67dc864c6b6e705710853b5568ef">data</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordtype">void</span> <a class="code" href="a00003.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a>();</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">void</span> <a class="code" href="a00003.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a>(genType <span class="keyword">const</span>&amp; Texel);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; genType <a class="code" href="a00003.html#a2c04da2a2b96b59710315218eae1bf8b">load</a>(extent_type <span class="keyword">const</span>&amp; TexelCoord);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> genType&gt;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">void</span> <a class="code" href="a00003.html#a0d2a0cda41c9697b915f4c176ad77ef3">store</a>(extent_type <span class="keyword">const</span>&amp; TexelCoord, genType <span class="keyword">const</span>&amp; Data);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">explicit</span> <a class="code" href="a00003.html#ab4f40c94d3427e415d291c68d3e67cfa">image</a>(</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; std::shared_ptr&lt;storage_linear&gt; Storage,</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; format_type Format,</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; size_type BaseLayer,</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; size_type BaseFace,</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; size_type BaseLevel);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; std::shared_ptr&lt;storage_linear&gt; Storage;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; format_type <span class="keyword">const</span> Format;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; size_type <span class="keyword">const</span> BaseLevel;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; data_type* Data;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; size_type <span class="keyword">const</span> Size;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; data_type* compute_data(size_type BaseLayer, size_type BaseFace, size_type BaseLevel);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; size_type compute_size(size_type Level) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; };</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#include &quot;./core/image.inl&quot;</span></div>
<div class="ttc" id="a00003_html_ab4f40c94d3427e415d291c68d3e67cfa"><div class="ttname"><a href="a00003.html#ab4f40c94d3427e415d291c68d3e67cfa">gli::image::image</a></div><div class="ttdeci">image()</div><div class="ttdoc">Create an empty image instance. </div></div>
<div class="ttc" id="a00003_html_ad94928ca00873970455c1fb2d3c03fd8"><div class="ttname"><a href="a00003.html#ad94928ca00873970455c1fb2d3c03fd8">gli::image::format</a></div><div class="ttdeci">format_type format() const </div><div class="ttdoc">Return the image instance format. </div></div>
<div class="ttc" id="a00074_html_a387137c43ed9616d39ba90e890d181eb"><div class="ttname"><a href="a00074.html#a387137c43ed9616d39ba90e890d181eb">gli::format</a></div><div class="ttdeci">format</div><div class="ttdoc">Texture data format. </div><div class="ttdef"><b>Definition:</b> <a href="a00033_source.html#l00012">format.hpp:12</a></div></div>
<div class="ttc" id="a00015_html"><div class="ttname"><a href="a00015.html">gli::texture2d</a></div><div class="ttdoc">2d texture </div><div class="ttdef"><b>Definition:</b> <a href="a00065_source.html#l00012">texture2d.hpp:12</a></div></div>
<div class="ttc" id="a00003_html"><div class="ttname"><a href="a00003.html">gli::image</a></div><div class="ttdoc">Image, representation for a single texture level. </div><div class="ttdef"><b>Definition:</b> <a href="a00037_source.html#l00011">image.hpp:11</a></div></div>
<div class="ttc" id="a00003_html_a0d2a0cda41c9697b915f4c176ad77ef3"><div class="ttname"><a href="a00003.html#a0d2a0cda41c9697b915f4c176ad77ef3">gli::image::store</a></div><div class="ttdeci">void store(extent_type const &amp;TexelCoord, genType const &amp;Data)</div><div class="ttdoc">Store the texel located at TexelCoord coordinates. </div></div>
<div class="ttc" id="a00003_html_a2c04da2a2b96b59710315218eae1bf8b"><div class="ttname"><a href="a00003.html#a2c04da2a2b96b59710315218eae1bf8b">gli::image::load</a></div><div class="ttdeci">genType load(extent_type const &amp;TexelCoord)</div><div class="ttdoc">Load the texel located at TexelCoord coordinates. </div></div>
<div class="ttc" id="a00017_html"><div class="ttname"><a href="a00017.html">gli::texture3d</a></div><div class="ttdoc">3d texture </div><div class="ttdef"><b>Definition:</b> <a href="a00067_source.html#l00012">texture3d.hpp:12</a></div></div>
<div class="ttc" id="a00003_html_ac8bb3912a3ce86b15842e79d0b421204"><div class="ttname"><a href="a00003.html#ac8bb3912a3ce86b15842e79d0b421204">gli::image::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Clear the entire image storage_linear with zeros. </div></div>
<div class="ttc" id="a00003_html_a503ab01f6c0142145d3434f6924714e7"><div class="ttname"><a href="a00003.html#a503ab01f6c0142145d3434f6924714e7">gli::image::size</a></div><div class="ttdeci">size_type size() const </div><div class="ttdoc">Return the memory size of an image instance storage_linear in bytes. </div></div>
<div class="ttc" id="a00013_html"><div class="ttname"><a href="a00013.html">gli::texture1d</a></div><div class="ttdoc">1d texture </div><div class="ttdef"><b>Definition:</b> <a href="a00063_source.html#l00012">texture1d.hpp:12</a></div></div>
<div class="ttc" id="a00003_html_a3f2c67dc864c6b6e705710853b5568ef"><div class="ttname"><a href="a00003.html#a3f2c67dc864c6b6e705710853b5568ef">gli::image::data</a></div><div class="ttdeci">void * data()</div><div class="ttdoc">Return a pointer to the beginning of the image instance data. </div></div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
<div class="ttc" id="a00003_html_a4c9de4b32898ed383505745972d6c009"><div class="ttname"><a href="a00003.html#a4c9de4b32898ed383505745972d6c009">gli::image::extent</a></div><div class="ttdeci">extent_type extent() const </div><div class="ttdoc">Return the dimensions of an image instance: width, height and depth. </div></div>
<div class="ttc" id="a00003_html_ac6e61de369e994009e36f344f99c15ad"><div class="ttname"><a href="a00003.html#ac6e61de369e994009e36f344f99c15ad">gli::image::empty</a></div><div class="ttdeci">bool empty() const </div><div class="ttdoc">Return whether the image instance is empty, no storage_linear or description have been assigned to th...</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

126
external/gli/doc/api/a00038.html vendored 100644
View File

@ -0,0 +1,126 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: levels.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">levels.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Include to compute the number of mipmaps levels necessary to create a mipmap complete texture.
<a href="#details">More...</a></p>
<p><a href="a00038_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:a00074"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">gli</a></td></tr>
<tr class="memdesc:a00074"><td class="mdescLeft">&#160;</td><td class="mdescRight">Namespace where all the classes and functions provided by GLI are exposed. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a1c292c3cc635f296fb6a37dfba2fae65"><td class="memTemplParams" colspan="2">template&lt;typename T , precision P, template&lt; typename, precision &gt; class vecType&gt; </td></tr>
<tr class="memitem:a1c292c3cc635f296fb6a37dfba2fae65"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00074.html#a1c292c3cc635f296fb6a37dfba2fae65">levels</a> (vecType&lt; T, P &gt; const &amp;Extent)</td></tr>
<tr class="memdesc:a1c292c3cc635f296fb6a37dfba2fae65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the number of mipmaps levels necessary to create a mipmap complete texture. <a href="a00074.html#a1c292c3cc635f296fb6a37dfba2fae65">More...</a><br /></td></tr>
<tr class="separator:a1c292c3cc635f296fb6a37dfba2fae65"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Include to compute the number of mipmaps levels necessary to create a mipmap complete texture. </p>
<p>Definition in file <a class="el" href="a00038_source.html">levels.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,120 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: levels.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">levels.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00038.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00071.html">type.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, precision&gt; <span class="keyword">class </span>vecType&gt;</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; T <a class="code" href="a00074.html#a1c292c3cc635f296fb6a37dfba2fae65">levels</a>(vecType&lt;T, P&gt; <span class="keyword">const</span>&amp; Extent);</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> size_t levels(size_t Extent);</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> int levels(int Extent);</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;./core/levels.inl&quot;</span></div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
<div class="ttc" id="a00074_html_a1c292c3cc635f296fb6a37dfba2fae65"><div class="ttname"><a href="a00074.html#a1c292c3cc635f296fb6a37dfba2fae65">gli::levels</a></div><div class="ttdeci">T levels(vecType&lt; T, P &gt; const &amp;Extent)</div><div class="ttdoc">Compute the number of mipmaps levels necessary to create a mipmap complete texture. </div></div>
<div class="ttc" id="a00071_html"><div class="ttname"><a href="a00071.html">type.hpp</a></div><div class="ttdoc">Include to use basic GLI types. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

131
external/gli/doc/api/a00039.html vendored 100644
View File

@ -0,0 +1,131 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: load.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">load.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Include to load DDS, KTX or KMG textures from files or memory.
<a href="#details">More...</a></p>
<p><a href="a00039_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:a00074"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">gli</a></td></tr>
<tr class="memdesc:a00074"><td class="mdescLeft">&#160;</td><td class="mdescRight">Namespace where all the classes and functions provided by GLI are exposed. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a6ceab391900a9c196b639c66dfe1eb34"><td class="memItemLeft" align="right" valign="top">texture&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">load</a> (char const *Path)</td></tr>
<tr class="memdesc:a6ceab391900a9c196b639c66dfe1eb34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads a texture storage_linear from file. <a href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">More...</a><br /></td></tr>
<tr class="separator:a6ceab391900a9c196b639c66dfe1eb34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa98e629f469e2226261d89c60c218cd"><td class="memItemLeft" align="right" valign="top">texture&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#afa98e629f469e2226261d89c60c218cd">load</a> (std::string const &amp;Path)</td></tr>
<tr class="memdesc:afa98e629f469e2226261d89c60c218cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads a texture storage_linear from file. <a href="a00074.html#afa98e629f469e2226261d89c60c218cd">More...</a><br /></td></tr>
<tr class="separator:afa98e629f469e2226261d89c60c218cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4816fc22c4aef8540ab219899c4d8223"><td class="memItemLeft" align="right" valign="top">texture&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html#a4816fc22c4aef8540ab219899c4d8223">load</a> (char const *Data, std::size_t Size)</td></tr>
<tr class="memdesc:a4816fc22c4aef8540ab219899c4d8223"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads a texture storage_linear from memory. <a href="a00074.html#a4816fc22c4aef8540ab219899c4d8223">More...</a><br /></td></tr>
<tr class="separator:a4816fc22c4aef8540ab219899c4d8223"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Include to load DDS, KTX or KMG textures from files or memory. </p>
<p>Definition in file <a class="el" href="a00039_source.html">load.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

View File

@ -0,0 +1,118 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>0.8.2 API documentation: load.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">0.8.2 API documentation
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_934f46a345653ef2b3014a1b37a162c1.html">G:</a></li><li class="navelem"><a class="el" href="dir_98f7f9d41f9d3029bd68cf237526a774.html">Source</a></li><li class="navelem"><a class="el" href="dir_9344afb825aed5e2f5be1d2015dde43c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_b73546165ac7e018753d96ca90d34595.html">gli</a></li><li class="navelem"><a class="el" href="dir_ae6bff3f3cf3c65a1db429f9020bb7b3.html">gli</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">load.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00039.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00062.html">texture.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00074.html">gli</a></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; texture <a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">load</a>(<span class="keywordtype">char</span> <span class="keyword">const</span>* Path);</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; texture <a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">load</a>(std::string <span class="keyword">const</span>&amp; Path);</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; texture <a class="code" href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">load</a>(<span class="keywordtype">char</span> <span class="keyword">const</span>* Data, std::size_t Size);</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;}<span class="comment">//namespace gli</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;./core/load.inl&quot;</span></div>
<div class="ttc" id="a00062_html"><div class="ttname"><a href="a00062.html">texture.hpp</a></div><div class="ttdoc">Include to use generic textures which can represent any texture target but they don&#39;t have target spe...</div></div>
<div class="ttc" id="a00074_html_a6ceab391900a9c196b639c66dfe1eb34"><div class="ttname"><a href="a00074.html#a6ceab391900a9c196b639c66dfe1eb34">gli::load</a></div><div class="ttdeci">texture load(char const *Path)</div><div class="ttdoc">Loads a texture storage_linear from file. </div></div>
<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">gli</a></div><div class="ttdoc">Namespace where all the classes and functions provided by GLI are exposed. </div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00006">clear.hpp:6</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More