(https://developer.apple.com/library/mac/documentation/compilertools/conceptual/llvmcompileroverview/index.html)

Similar documents
OpenGL Status - November 2013 G-Truc Creation

PVR File Format. Specification

PVRTexTool. User Manual

PVRTC & Texture Compression. User Guide

Shading System Immediate-Mode API v2.2

Graphics. Texture Mapping 고려대학교컴퓨터그래픽스연구실.

Copyright Khronos Group Page 1

ก ก ก.

Working with Metal Overview

ASTC Does It. Eason Tang Staff Applications Engineer, ARM

Introduction to OpenGL ES 3.0

Textures. Texture Mapping. Bitmap Textures. Basic Texture Techniques

PowerVR. Performance Recommendations

Mali Developer Resources. Kevin Ho ARM Taiwan FAE

PVRTC Specification and User Guide

PVRTexTool. Reference Manual

PowerVR Performance Recommendations. The Golden Rules

Tools To Get Great Graphics Performance

PFX Language Format. Specification

Applying Textures. Lecture 27. Robb T. Koether. Hampden-Sydney College. Fri, Nov 3, 2017

Lighting and Texturing

Metal Feature Set Tables

Lecture 6: Texturing Part II: Texture Compression and GPU Latency Hiding Mechanisms. Visual Computing Systems CMU , Fall 2014

Texture Compression. Jacob Ström, Ericsson Research

GDC 2014 Barthold Lichtenbelt OpenGL ARB chair

PowerVR: Getting Great Graphics Performance with the PowerVR Insider SDK. PowerVR Developer Technology

GLSL Overview: Creating a Program

Graphics Technology Update

CS 432 Interactive Computer Graphics

Overview. Technology Details. D/AVE NX Preliminary Product Brief

Discussion 3. PPM loading Texture rendering in OpenGL

Using Virtual Texturing to Handle Massive Texture Data

Metal for OpenGL Developers

More frames per second. Alex Kan and Jean-François Roy GPU Software

三維繪圖程式設計 3D Graphics Programming Design 第七章基礎材質張貼技術嘉大資工系盧天麒

Bringing AAA graphics to mobile platforms. Niklas Smedberg Senior Engine Programmer, Epic Games

Overview. Goals. MipMapping. P5 MipMap Texturing. What are MipMaps. MipMapping in OpenGL. Generating MipMaps Filtering.

PowerVR SDK & Tools. February 2017

3D Graphics Texture Compression And Its Recent Trends.

RenderMonkey SDK Version 1.71

Grafica Computazionale: Lezione 30. Grafica Computazionale. Hiding complexity... ;) Introduction to OpenGL. lezione30 Introduction to OpenGL

Free Downloads OpenGL ES 3.0 Programming Guide

Saving the Planet Designing Low-Power, Low-Bandwidth GPUs

OpenGL 3 Overview. Barthold Lichtenbelt, NVIDIA OpenGL ARB Chair. Copyright Khronos Group, Page 1

Optimizing and Profiling Unity Games for Mobile Platforms. Angelo Theodorou Senior Software Engineer, MPG Gamelab 2014, 25 th -27 th June

OpenCL Overview. Shanghai March Neil Trevett Vice President Mobile Content, NVIDIA President, The Khronos Group

Per-Face Texture Mapping for Realtime Rendering. Realtime Ptex

trisycl Open Source C++17 & OpenMP-based OpenCL SYCL prototype Ronan Keryell 05/12/2015 IWOCL 2015 SYCL Tutorial Khronos OpenCL SYCL committee

Vulkan 1.1 March Copyright Khronos Group Page 1

Starting out with OpenGL ES 3.0. Jon Kirkham, Senior Software Engineer, ARM

Squeezing Performance out of your Game with ATI Developer Performance Tools and Optimization Techniques

DEVELOPER DAY MONTRÉAL APRIL Copyright Khronos Group Page 1

OpenGL ES 2.0 : Start Developing Now. Dan Ginsburg Advanced Micro Devices, Inc.

Unreal Engine 4: Mobile Graphics on ARM CPU and GPU Architecture

GPU Memory Model Overview

EECS 487: Interactive Computer Graphics

Mention driver developers in the room. Because of time this will be fairly high level, feel free to come talk to us afterwards

GLSL: Creating GLSL Programs - Overview

December Copyright Khronos Group, Page 1

-=Catmull's Texturing=1974. Part I of Texturing

Practical Development for Vulkan. Dan Ginsburg, Valve Baldur Karlsson, Unity Dean Sekulic, Croteam

Copyright Khronos Group, Page Graphic Remedy. All Rights Reserved

OpenGL BOF Siggraph 2011

Press Briefing SIGGRAPH 2015 Neil Trevett Khronos President NVIDIA Vice President Mobile Ecosystem. Copyright Khronos Group Page 1

Graphics Processing Unit Architecture (GPU Arch)

Porting Roblox to Vulkan. Arseny

The PowerVR Insider SDK. PowerVR Developer Technology

Mobile Graphics Trends: Applications. Marco Agus, KAUST & CRS4

Adaptive Scalable Texture Compression

Chapter 3. Texture mapping. Learning Goals: Assignment Lab 3: Implement a single program, which fulfills the requirements:

Texture Mapping 1/34

Press Briefing SIGGRAPH 2015 Neil Trevett Khronos President NVIDIA Vice President Mobile Ecosystem. Copyright Khronos Group Page 1

Next Generation OpenGL Neil Trevett Khronos President NVIDIA VP Mobile Copyright Khronos Group Page 1

CS195V Week 6. Image Samplers and Atomic Operations

What s New in DI-Guy 12.5

Texture Mapping 1/34

Getting the Most Out of OpenGL ES. Daniele Di Donato, Tom Olson, and Dave Shreiner ARM

Computergraphics Exercise 15/ Shading & Texturing

OpenGL R ES Version (December 18, 2013) Editor: Benj Lipchak

NVSG NVIDIA Scene Graph

LPGPU Workshop on Power-Efficient GPU and Many-core Computing (PEGPUM 2014)

More performance options

NVIDIA Developer Tools for Graphics and PhysX

CS475/CS675 - Computer Graphics. OpenGL Drawing

Accelerating Vision Processing

Coding Tools. (Lectures on High-performance Computing for Economists VI) Jesús Fernández-Villaverde 1 and Pablo Guerrón 2 March 25, 2018

Rationale for Non-Programmable Additions to OpenGL 2.0

RenderMonkey 1.6. Natalya Tatarchuk ATI Research

Copyright Khronos Group, Page 1

The Ultimate Developers Toolkit. Jonathan Zarge Dan Ginsburg

Graphics Programming. Computer Graphics, VT 2016 Lecture 2, Chapter 2. Fredrik Nysjö Centre for Image analysis Uppsala University

OpenGL Über Buffers Extension

Texturing Theory. Overview. All it takes is for the rendered image to look right. -Jim Blinn 11/10/2018

PowerVR. Performance Recommendations

EPICS Base Status and Plans. Ralph Lange for the EPICS Core Developers

Page 1. Agenda. Programming Languages. C Compilation Process

FPLLL. Contributing. Martin R. Albrecht 2017/07/06

Introduction. What s New in This Edition

Graphics Performance Optimisation. John Spitzer Director of European Developer Technology

Installing Intel Parallel Studio XE Composer Edition for Fortran Windows 2016

Transcription:

OpenGL Image (http://gli.g-truc.net/) (GLI) is a header only C++ image library for graphics software. GLI provides classes and functions to load image files (KTX (https://www.khronos.org/opengles/sdk/tools/ktx/) and DDS (https://msdn.microsoft.com/en-us/library/windows/desktop/bb943990%28v=vs.85%29.aspx) ), facilitate graphics APIs texture creation, compare textures, access texture texels, sample textures, convert textures, generate mipmaps, etc. This library works perfectly with OpenGL (https://www.opengl.org) or Vulkan (https://www.khronos.org/vulkan) but it also ensures interoperability with other third party libraries and SDK. It is a good candidate for software rendering (raytracing / rasterisation), image processing, image based software testing or any development context that requires a simple and convenient image library. GLI is written in C++11. It is a platform independent library with no dependence and it supports the following compilers: Apple Clang 5.0 (https://developer.apple.com/library/mac/documentation/compilertools/conceptual/llvmcompileroverview/index.html) and higher GCC (http://gcc.gnu.org/) 4.6 and higher Intel C++ Composer (https://software.intel.com/en-us/intel-compilers) XE 2013 and higher LLVM (http://llvm.org/) 3.2 and higher Visual C++ (http://www.visualstudio.com/) 2010 and higher Any conform C++11 compiler For more information about GLI, please have a look at the manual (manual.md) and the API reference documentation (http://gli.g-truc.net/0.8.0/api/index.html). The source code and the documentation are licensed under the Happy Bunny License (Modified MIT) or the MIT License (manual.md#section0). Thanks for contributing to the project by submitting issues (https://github.com/g-truc/gli/issues) for bug reports and feature requests. Any feedback is welcome at gli@g-truc.net (mailto://gli@g-truc.net). #include <gli/gli.hpp> GLuint CreateTexture (char const* Filename) { gli:: texture Texture = gli:: load(filename); if (Texture.empty()) return 0; )); gli:: gl GL(gli:: gl:: PROFILE_GL33); gli:: gl:: format consto n s t Format = GL.translate(Texture.format(), Texture.swizzles()); GLenum Target = GL.translate(Texture.target()); assert(gli:: is_compressed(texture.format()) && Target == gli:: TARGET_2D); GLuint TextureName = 0; glgentextures(1, & TextureName); glbindtexture(target, TextureName); gltexparameteri(target, GL_TEXTURE_BASE_LEVEL, 0); gltexparameteri(target, GL_TEXTURE_MAX_LEVEL, static_cast< GLint> (Texture.levels() - 1 1 of 7

gltexparameteriv(target, GL_TEXTURE_SWIZZLE_RGBA, & Format.Swizzles[0]); gltexstorage2d(target, static_cast< GLint> (Texture.levels()), Format.Internal, Extent.x, Extent.y); for (std:: size_t Level = 0; Level < Texture.levels(); ++ Level) { glm:: tvec3< GLsizei> Extent(Texture.extent(Level)); glcompressedtexsubimage2d( Target, static_cast< GLint> (Level), 0, 0, Extent.x, Extent.y, Format.Internal, static_cast< GLsizei> (Texture.size(Level)), Texture.data(0, 0, Level)); } } return TextureName; Lastest release Project Health Service System Compiler Status Drone (https://drone.io/github.com/g-truc/gli) Linux 64 bits GCC 4.6.3 (https://drone.io/github.com/gtruc/gli/latest) Travis CI (https://travis-ci.org/g-truc/gli) Linux 64 bits Clang 3.4, Clang 3.8, GCC 4.9 (https://travis-ci.org/g-truc/gli) AppVeyor (https://ci.appveyor.com/project/groovounet/gli) Windows 32 and 64 Visual Studio 2013 (https://ci.appveyor.com/project/groovounet/gli) Release notes GLI 0.8.3.0-2017-XX-XX Added decompression and sampling of DXT1, DXT3, DXT5, ATI1N and ATI2N #110 #119 Added depth and stencil format queries #119 Fixed R8 SRGB #120 GLI 0.8.2.0-2016-11-13 2 of 7

Extend flip() for S3TC compressed textures #94 Added format property queries #102 Fixed texture operator= Added initial manual Fixed ATI2N swizzle parameters #121 GLI 0.8.1.1-2016-09-11 Updated GLM to 0.9.8.0 release Fixed KTX cube maps saving Fixed texture::clear build GLI 0.8.1.0-2016-03-16 Added texture copy, no allocation involved, only transfer Added sub-image copy Added non-member clear Added make_texture* helper functions Added compressed npot textures support #73 Added image access cache to generic textures Added luminance alpha format translation to OpenGL 3.3+ through RG swizzling. #93 Improved performance when sampling using mipmaps Improved nearest filter without border using texture_lod performance (~2.5x faster with texture2d) Improved texture::data() (~18x with cube array, ~68x with 2D) Improved texture::size() (~3.1x with cube array, ~3.9x with 2D) Improved simultanous texture::size() and texture::extent() calls (~2.1x with cube array, ~2.3x with 2D) Fixed DX10 DDS saving of 3D textures #91 3 of 7

Fixed BGRX translation with PROFILE_GL33 profile #92 Fixed DDS9 loading of 3D texture detected as 2D texture #93 GLI 0.8.0.0-2016-02-16 Added texture swizzle support #79 Added texture memory swizzle support Added texture conversion from any uncompressed format to any uncompressed format Added texture lod Added texture mipmaps generation for uncompressed formats Added support for load and store Added support for many new formats Added sampler 1D, 2D, 3D, array and cube map Added sampler texel fetch and texel write Added sampler clear Added transform algorithm to compute arithmetic between texels Added reduce algorithm to compare all texels within an image Reordered formats to match Vulkan formats Improved OpenGL translation with for multiple profiles: KTX, ES2.0, ES3.0, GL3.2 and GL3.3 Improved Doxygen documentation Fixed PVRTC2 support Fixed luminance and alpha translation to OpenGL #56 Fixed DXGI_FORMAT_B8G8R8X8_UNORM_SRGB support #59 Fixed FORMAT_RGBA8_UNORM DDS loading using DDPF_RGBA mode #60 Fixed handling of DDS DDPF_ALPHAPIXELS #68 Fixed images, better matching names and formats #78 #81 #80 Fixed BC4U and BC5U files generated from MS DDS loader #82 Work in progress: Added KMG container support and spec proposal GLI 0.7.0.0-2015-09-01 Added KTX loading and saving Added gli::load for generic file loading, either DDS or KTX files depending on filename extensions Added gli::save for generic file saving, either DDS or KTX files depending on filename extensions 4 of 7

Added texture views using different texture format, including compressed texture formats Added fine granularity includes Improved API documentation Much faster texture comparisons is non optimal cases. (Measured ~21x faster on Intel IVB) Explicitly handling of texture targets: fixed various cases of cubemap and texture arrays failing to load with DDS Fixed GCC build Fixed warnings Fixed saved DDS header size on #52 GLI 0.6.1.1-2015-07-18 Updated API documentation Fixed link error GLI 0.6.1.0-2015-07-18 Fixed interface inconsistencies Improved clear(), data() and size() performance using caching Removed internal dependence to std::fstream Added FORMAT_BGRX8_UNORM and FORMAT_BGRX8_SRGB support #48, #43 Improved FORMAT_RGB8_UNORM loading GLI 0.6.0.0-2015-06-28 Large refactoring Added loading DDS from memory Added saving DDS to memory Improved DDS coverage for R, RG, RGB and RGBA formats Added DDS ASTC, PVRTC, ATC and ETC support Added DDS alpha, luminance and alpha luminance support Added PVRTC2, ETC2 and EAC formats GLI 0.5.1.1-2014-01-20 Fixed swizzled RGB channel when reading back a DDS Fixed getmask* link error GLI 0.5.1.0-2014-01-18 Added flip function Added level_count function 5 of 7

Fixed interaction with std::map (#33) Added texelfetch and texelwrite functions GLI 0.5.0.0-2013-11-24 Essencially a rewrite of the library Added explicit copies Added single memory allocation per texture storage Added texture views Added texture copies Added comparison operators Added clear GLI 0.4.1.0: 2013-03-10 Added DDS saving Fixed GCC build Fixed XCode build GLI 0.4.0.0: 2013-01-28 Large API refactoring Performance improvements at loading: 50x in debug and 50% in release build Added texture2darray Added texturecube and texturecubearray Added texture3d Added texture1d and texture1darray Improved DDS loading support GLI 0.3.0.3: 2011-04-05 Fixed bugs GLI 0.3.0.2: 2011-02-08 Fixed bugs GLI 0.3.0.1: 2010-10-15 Fixed bugs 6 of 7

GLI 0.3.0.0: 2010-10-01 Added DDS10 load and store (BC1 - BC7) Added extension system Added automatic OpenGL texture object creation from file GLI 0.2.2.0: 2010-09-07 Added DDS exporter GLI 0.2.1.1: 2010-05-12 Fixed GCC build GLI 0.2.1.0: 2010-02-15 Added texelwrite function Fixed Visual Studio 2010 warnings Added readme.txt and copying.txt GLI 0.2.0.0: 2010-01-10 Updated API Removed Boost dependency GLI 0.1.1.0: 2009-09-18 Fixed DDS loader Added RGB8 to DDS loader Added component swizzle operation Added 32 bits integer components support Fixed texel fetch GLI 0.1.0.0: 2009-03-28 Added TGA loader Added DDS loader Added duplicate, crop, partial copy Added mipmaps generation. 7 of 7