Giter Site home page Giter Site logo

shukantpal / ktx-software Goto Github PK

View Code? Open in Web Editor NEW

This project forked from khronosgroup/ktx-software

0.0 0.0 0.0 167.35 MB

KTX (Khronos Texture) Library and Tools

License: Other

Shell 0.29% JavaScript 1.56% Ruby 0.01% C++ 46.03% Python 1.09% Perl 0.18% C 44.28% Objective-C 0.04% Java 0.18% PowerShell 0.05% Awk 0.03% CSS 0.01% Cuda 0.01% Makefile 0.01% HTML 0.30% CMake 1.11% GLSL 0.05% Batchfile 0.01% POV-Ray SDL 4.77% Dockerfile 0.01%

ktx-software's Introduction

The Official Khronos KTX Software Repository

GNU/Linux, iOS, macOS & wasm Windows Android Mingw
Build Status Build status KTX-Software CI KTX-Software CI

This is the official home of the source code for the Khronos KTX library and tools.

KTX (Khronos Texture) is a lightweight container for textures for OpenGL®, Vulkan® and other GPU APIs. KTX files contain all the parameters needed for texture loading. A single file can contain anything from a simple base-level 2D texture through to a cubemap array texture with mipmaps. Contained textures can be in a Basis Universal format, in any of the block-compressed formats supported by OpenGL family and Vulkan APIs and extensions or in an uncompressed single-plane format. Basis Universal currently encompasses two formats that can be quickly transcoded to any GPU-supported format: LZ/ETC1S, which combines block-compression and supercompression, and UASTC, a block-compressed format. Formats other than LZ/ETC1S can be supercompressed with Zstd and ZLIB.

Download KTX Software Releases to get binary packages of the tools, library and development headers described below. The Releases page also has packages with the Javascript wrappers and .wasm binaries.

See the Doxygen generated live documentation for API and tool usage information.

The software consists of: (links are to source folders in the KhronosGroup repo)

  • libktx - a small library of functions for writing and reading KTX files, and instantiating OpenGL®, OpenGL ES™️ and Vulkan® textures from them. lib
  • libktx.{js,wasm} - Web assembly version of libktx and Javascript wrapper. interface/js_binding
  • msc_basis_transcoder.{js,wasm} - Web assembly transcoder and Javascript wrapper for Basis Universal formats. For use with KTX parsers written in Javascript. interface/js_binding
  • libktx.jar, libktx-jni - Java wrapper and native interface library. interface/java_binding
  • ktx - a generic command line tool for managing KTX2 files with subcommands.tools/ktx
    • ktx create - Create a KTX2 file from various input files
    • ktx extract - Export selected images from a KTX2 file
    • ktx encode - Encode a KTX2 file
    • ktx transcode - Transcode a KTX2 file
    • ktx info - Prints information about a KTX2 file
    • ktx validate - Validate a KTX2 file
    • ktx help - Display help information about the ktx tools
  • ktx2check - a tool for validating KTX Version 2 format files. tools/ktx2check
  • ktx2ktx2 - a tool for converting a KTX Version 1 file to a KTX Version 2 file. tools/ktx2ktx2
  • ktxinfo - a tool to display information about a KTX file in human readable form. tools/ktxinfo
  • ktxsc - a tool to supercompress a KTX Version 2 file that contains uncompressed images.tools/ktxsc
  • pyktx - Python wrapper
  • toktx - a tool to create KTX files from PNG, Netpbm or JPEG format images. It supports mipmap generation, encoding to Basis Universal formats and Zstd supercompression.tools/toktx

See CONTRIBUTING for information about contributing.

See LICENSE for information about licensing.

See BUILDING for information about building the code.

If you need help with using the KTX library or KTX tools, please use GitHub Discussions. To report problems use GitHub issues.

IMPORTANT: you must install the Git LFS command line extension in order to fully checkout this repository after cloning. You need at least version 1.1. If you did not have Git LFS installed at first checkout then, after installing it, you must run

git lfs checkout

A few files have $Date$ keywords. If you care about having the proper dates shown or will be generating the documentation or preparing distribution archives, you must follow the instructions below.

KTX-Software-CTS - Conformance Test Suite

The tests and test files for the generic command line ktx tool can be found in a separate CTS Repository. To save space and bandwidth this repository is included with git submodule and by default it is not required for building the libraries or the tools. For more information about building, running and extending the CTS tests see BUILDING and CTS README.

$Date$ keyword expansion

$Date$ keywords are expanded via smudge & clean filters. To install the filters, issue the following commands in the root of your clone.

On Unix (Linux, Mac OS X, etc.) platforms and Windows using Git for Windows' Git Bash or Cygwin's bash terminal:

./install-gitconfig.sh
./ci_scripts/smudge_date.sh

On Windows PowerShell (requires git.exe in a directory on your %PATH%):

install-gitconfig.ps1
./ci_scripts/smudge_date.ps1

The first command adds an [include] of the repo's .gitconfig to the local git config file .git/config, i.e. the one in your clone of the repo. .gitconfig contains the config of the "keyworder" filter. The script in the second command forces a new checkout of the affected files to smudge them with their last modified date. This is unnecessary if you plan to edit these files.

ktx-software's People

Contributors

abbaswasim avatar aqnuep avatar atteneder avatar corporateshark avatar ddos avatar erixencruz avatar honeybunch avatar kachkov98 avatar kacprzak avatar lexaknyazev avatar markcallow avatar paroj avatar pdaehne avatar pierremoreau avatar raffaello avatar realvictorprm avatar rhermes avatar rjktcby avatar sergeyext avatar sevmeyer avatar shukantpal avatar sidsethupathi avatar solidpixel avatar suikki avatar swapsen avatar toomuchvoltage avatar uberlambda avatar vadery avatar wasimabbas-arm avatar zeux avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.