Giter Club home page Giter Club logo

etcpack's Introduction

ETCPACK

Ericsson has developed a texture compression system called "Ericsson Texture Compression". The software for compressing images and textures to that format is called ETCPACK.

The latest version of this software includes the possibility to compress images to the new formats introduced as mandatory in the Khronos standards OpenGL ES 3.0 and OpenGL 4.3. We call this package the ETC2-package of codecs, where ETC stands for Ericsson Texture Compression. For instance the new RGB8 ETC2 codec allows higher-quality compression than ETC1. It is also backward compatible; an old ETC1 texture can be decoded using ETC2-capable handsets. There are also new formats for RGBA textures and single-channel (R) and double-channel (RG) textures. For a complete list of codecs, see Appendix C in the OpenGL ES 3.0 standard. The new software also compresses old ETC1 textures. The software can be used by independent hardware vendors who want to include ETC2-package-compression in the tool chains that they give or sell to game developers. It can also be used directly by game developers who want to create games for OpenGL ES 3.0 capable handsets. The software includes source code for the command-line-program etcpack.

etcpack's People

Contributors

jacobstrom-ericsson avatar siavashserver avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

etcpack's Issues

How to compile it on macOS?

I want to know how to compile it on macOS? Thanks.

When I use gcc etcpack.cpp to compile it, I got a error:

etcpack.cpp:15573:6: note: use '==' to turn this assignment into an equality comparison
        if(f=fopen(dstfile,"wb"))
            ^
            ==
etcpack.cpp:15885:16: error: variable has incomplete type 'struct _timeb'
        struct _timeb tstruct;
                      ^
etcpack.cpp:15885:9: note: forward declaration of '_timeb'
        struct _timeb tstruct;
               ^
59 warnings and 1 error generated.

License

Hi;
Are you planning on licensing this with more permissive license such as MIT?

If I understand correctly the current license seems to prohibit redistribution if any modifications (such as fixes, enhancements or 'glue code') are made which is a likely showstopper for projects using this code.

// Tapani

builded version?

is there a version where it's already built? I want to decompress etc.dds files but I don't have coding experience at all :(

Unclear licensing wording and intent

The following section is unclear from a legal standpoint:

"Subject to the terms and conditions of the SLA, the licensee of the
Software (the "Licensee") hereby, receives a non-exclusive,
non-transferable, limited, free-of-charge, perpetual and worldwide
license, to copy, use, distribute and modify the Software, but only
for the purpose of developing, manufacturing, selling, using and
distributing products including the Software in binary form, which
products are used for compression and/or decompression according to
the Khronos standard specifications OpenGL, OpenGL ES and
WebGL. Notwithstanding anything of the above, Licensee may distribute
[etcdec.cxx] in source code form provided (i) it is in unmodified
form; and (ii) it is included in software owned by Licensee."

From my understanding, if we want to distribute the source code, it needs to be distributed as-is with the same license. If we want to change the code, we need to distribute it in binary form.
What about distributing it in binary form without doing compression and decompression? What about products that do compression/decompression that does not follow the Khronos standard specification?
What about a product that is actually another library A, where another user uses this library to build another library B or an application C and does not use the compression/decompression capability of the original library A in library B or application C?

In which circumstances we cannot redistribute the Software in a binary form?

Thank you!

imconv is a very poor default

First, is this project active? I see a recent change four months ago.

However, upon trying your etcpack.exe I encountered and error because my Windows 10 system does not have "imconv". I investigated further and learned that imconv is an image conversion tool which was last updated in 1995. I had to dig quite a bit to find the source for this tool as many links from 1995 do not work.

ftp://ftp.sdsc.edu/pub/sdsc/graphics/imtools/source/

Given that this tool has not been updated in over 20 years, and ImageMagick was updated yesterday, perhaps the etcpack source could be updated to reflect a modern image conversion tool? Presumably, this would save many people, myself included, the hassle of having to make the change themself and rebuild from source.

source code in this repo is outdated

The etcpack executable bundled with the Mali Texture Compression package reports:
ETCPACK v4.0.1 for ETC and ETC2

And the code in this GitHub repo reports:
ETCPACK v2.74 For ETC and ETC2

I cannot find the source code of the newer version anywhere online. The new version is claimed to be much faster per Mali Texture Compression webpage:

Improved ETC1 compression speed of up to 600x compared to ETCPack at the same or better quality.

(https://developer.arm.com/tools-and-software/graphics-and-gaming/mali-texture-compression-tool)

Has etcpack become closed source?

static enum

etcpack.cxx (possibly other files) extensively uses static enum. This is not valid C/C++ (and doesn't make any sense). static determines how storage should be allocated but an enum-declaration does not allocate storage.

This means it compiles in MSVC but not in MinGW (I assume not gcc as well, or MSVC when using /permissive-).

The solution is to simple replace static enum with enum.

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.