Skip to content

Commit 4c7e737

Browse files
committed
add pkm, pvrtc(rgb/rgba 4bpp, 2bpp) implementation.
1 parent 91bf76b commit 4c7e737

33 files changed

+5641
-0
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,3 +194,6 @@ FakesAssemblies/
194194

195195
# Visual Studio 6 workspace options file
196196
*.opt
197+
*.d
198+
*.o
199+
ext/

ImageMagickTextureCompressModules.sln

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio 2013
4+
VisualStudioVersion = 12.0.31101.0
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IM_MOD_pkm", "pkm\IM_MOD_PKM.vcxproj", "{BE2A527A-DB67-4325-82CA-A49770F79A74}"
7+
EndProject
8+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CORE_magick", "ext\ImageMagick\VisualMagick\magick\CORE_magick_DynamicMT.vcxproj", "{B26E58E8-3B95-404B-ADC6-8F22463C66C8}"
9+
EndProject
10+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CORE_bzlib", "ext\ImageMagick\VisualMagick\bzlib\CORE_bzlib_DynamicMT.vcxproj", "{4482141F-E739-420D-BA82-FB1189E4A3D3}"
11+
EndProject
12+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CORE_glib", "ext\ImageMagick\VisualMagick\glib\CORE_glib_DynamicMT.vcxproj", "{5609820E-BDA5-4B0E-9182-2B87C5E5D8AA}"
13+
EndProject
14+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CORE_lcms", "ext\ImageMagick\VisualMagick\lcms\CORE_lcms_DynamicMT.vcxproj", "{E7365AFD-AB79-41FA-B28B-6A6046A58353}"
15+
EndProject
16+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ImageMagick", "ImageMagick", "{6D4D677B-4BC6-4CB5-AE0D-70F914A7457F}"
17+
EndProject
18+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CORE_lqr", "ext\ImageMagick\VisualMagick\lqr\CORE_lqr_DynamicMT.vcxproj", "{5A4006F9-813D-4041-B2CB-BCDFACC75E14}"
19+
EndProject
20+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CORE_ttf", "ext\ImageMagick\VisualMagick\ttf\CORE_ttf_DynamicMT.vcxproj", "{85A18606-3B50-43E0-98C0-822B15F14A73}"
21+
EndProject
22+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CORE_zlib", "ext\ImageMagick\VisualMagick\zlib\CORE_zlib_DynamicMT.vcxproj", "{CBAD3B01-9E29-480B-9CFE-8199AAF298CD}"
23+
EndProject
24+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CORE_ffi", "ext\ImageMagick\VisualMagick\ffi\CORE_ffi_DynamicMT.vcxproj", "{23EF39EE-9114-4F36-BC88-52C9A0F3E4E0}"
25+
EndProject
26+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "pkm", "pkm", "{7FD8202C-1F23-4BBD-A980-A00E0ADFACFE}"
27+
EndProject
28+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "pvrtc", "pvrtc", "{E7A9CAAA-F80F-4FD2-A526-036494FE839E}"
29+
EndProject
30+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IM_MOD_pvrtc", "pvrtc\IM_MOD_pvrtc.vcxproj", "{4ABAB83E-A2E6-4EA8-ABAB-1C66FA4F5149}"
31+
EndProject
32+
Global
33+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
34+
Debug|Mixed Platforms = Debug|Mixed Platforms
35+
Debug|Win32 = Debug|Win32
36+
Debug|x64 = Debug|x64
37+
Release|Mixed Platforms = Release|Mixed Platforms
38+
Release|Win32 = Release|Win32
39+
Release|x64 = Release|x64
40+
EndGlobalSection
41+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
42+
{BE2A527A-DB67-4325-82CA-A49770F79A74}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
43+
{BE2A527A-DB67-4325-82CA-A49770F79A74}.Debug|Mixed Platforms.Build.0 = Debug|x64
44+
{BE2A527A-DB67-4325-82CA-A49770F79A74}.Debug|Win32.ActiveCfg = Debug|Win32
45+
{BE2A527A-DB67-4325-82CA-A49770F79A74}.Debug|Win32.Build.0 = Debug|Win32
46+
{BE2A527A-DB67-4325-82CA-A49770F79A74}.Debug|x64.ActiveCfg = Debug|x64
47+
{BE2A527A-DB67-4325-82CA-A49770F79A74}.Debug|x64.Build.0 = Debug|x64
48+
{BE2A527A-DB67-4325-82CA-A49770F79A74}.Release|Mixed Platforms.ActiveCfg = Release|Win32
49+
{BE2A527A-DB67-4325-82CA-A49770F79A74}.Release|Mixed Platforms.Build.0 = Release|Win32
50+
{BE2A527A-DB67-4325-82CA-A49770F79A74}.Release|Win32.ActiveCfg = Release|Win32
51+
{BE2A527A-DB67-4325-82CA-A49770F79A74}.Release|Win32.Build.0 = Release|Win32
52+
{BE2A527A-DB67-4325-82CA-A49770F79A74}.Release|x64.ActiveCfg = Release|x64
53+
{BE2A527A-DB67-4325-82CA-A49770F79A74}.Release|x64.Build.0 = Release|x64
54+
{B26E58E8-3B95-404B-ADC6-8F22463C66C8}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
55+
{B26E58E8-3B95-404B-ADC6-8F22463C66C8}.Debug|Mixed Platforms.Build.0 = Debug|x64
56+
{B26E58E8-3B95-404B-ADC6-8F22463C66C8}.Debug|Win32.ActiveCfg = Debug|x64
57+
{B26E58E8-3B95-404B-ADC6-8F22463C66C8}.Debug|x64.ActiveCfg = Debug|x64
58+
{B26E58E8-3B95-404B-ADC6-8F22463C66C8}.Debug|x64.Build.0 = Debug|x64
59+
{B26E58E8-3B95-404B-ADC6-8F22463C66C8}.Release|Mixed Platforms.ActiveCfg = Release|x64
60+
{B26E58E8-3B95-404B-ADC6-8F22463C66C8}.Release|Mixed Platforms.Build.0 = Release|x64
61+
{B26E58E8-3B95-404B-ADC6-8F22463C66C8}.Release|Win32.ActiveCfg = Release|x64
62+
{B26E58E8-3B95-404B-ADC6-8F22463C66C8}.Release|x64.ActiveCfg = Release|x64
63+
{B26E58E8-3B95-404B-ADC6-8F22463C66C8}.Release|x64.Build.0 = Release|x64
64+
{4482141F-E739-420D-BA82-FB1189E4A3D3}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
65+
{4482141F-E739-420D-BA82-FB1189E4A3D3}.Debug|Mixed Platforms.Build.0 = Debug|x64
66+
{4482141F-E739-420D-BA82-FB1189E4A3D3}.Debug|Win32.ActiveCfg = Debug|x64
67+
{4482141F-E739-420D-BA82-FB1189E4A3D3}.Debug|x64.ActiveCfg = Debug|x64
68+
{4482141F-E739-420D-BA82-FB1189E4A3D3}.Debug|x64.Build.0 = Debug|x64
69+
{4482141F-E739-420D-BA82-FB1189E4A3D3}.Release|Mixed Platforms.ActiveCfg = Release|x64
70+
{4482141F-E739-420D-BA82-FB1189E4A3D3}.Release|Mixed Platforms.Build.0 = Release|x64
71+
{4482141F-E739-420D-BA82-FB1189E4A3D3}.Release|Win32.ActiveCfg = Release|x64
72+
{4482141F-E739-420D-BA82-FB1189E4A3D3}.Release|x64.ActiveCfg = Release|x64
73+
{4482141F-E739-420D-BA82-FB1189E4A3D3}.Release|x64.Build.0 = Release|x64
74+
{5609820E-BDA5-4B0E-9182-2B87C5E5D8AA}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
75+
{5609820E-BDA5-4B0E-9182-2B87C5E5D8AA}.Debug|Mixed Platforms.Build.0 = Debug|x64
76+
{5609820E-BDA5-4B0E-9182-2B87C5E5D8AA}.Debug|Win32.ActiveCfg = Debug|x64
77+
{5609820E-BDA5-4B0E-9182-2B87C5E5D8AA}.Debug|x64.ActiveCfg = Debug|x64
78+
{5609820E-BDA5-4B0E-9182-2B87C5E5D8AA}.Debug|x64.Build.0 = Debug|x64
79+
{5609820E-BDA5-4B0E-9182-2B87C5E5D8AA}.Release|Mixed Platforms.ActiveCfg = Release|x64
80+
{5609820E-BDA5-4B0E-9182-2B87C5E5D8AA}.Release|Mixed Platforms.Build.0 = Release|x64
81+
{5609820E-BDA5-4B0E-9182-2B87C5E5D8AA}.Release|Win32.ActiveCfg = Release|x64
82+
{5609820E-BDA5-4B0E-9182-2B87C5E5D8AA}.Release|x64.ActiveCfg = Release|x64
83+
{5609820E-BDA5-4B0E-9182-2B87C5E5D8AA}.Release|x64.Build.0 = Release|x64
84+
{E7365AFD-AB79-41FA-B28B-6A6046A58353}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
85+
{E7365AFD-AB79-41FA-B28B-6A6046A58353}.Debug|Mixed Platforms.Build.0 = Debug|x64
86+
{E7365AFD-AB79-41FA-B28B-6A6046A58353}.Debug|Win32.ActiveCfg = Debug|x64
87+
{E7365AFD-AB79-41FA-B28B-6A6046A58353}.Debug|x64.ActiveCfg = Debug|x64
88+
{E7365AFD-AB79-41FA-B28B-6A6046A58353}.Debug|x64.Build.0 = Debug|x64
89+
{E7365AFD-AB79-41FA-B28B-6A6046A58353}.Release|Mixed Platforms.ActiveCfg = Release|x64
90+
{E7365AFD-AB79-41FA-B28B-6A6046A58353}.Release|Mixed Platforms.Build.0 = Release|x64
91+
{E7365AFD-AB79-41FA-B28B-6A6046A58353}.Release|Win32.ActiveCfg = Release|x64
92+
{E7365AFD-AB79-41FA-B28B-6A6046A58353}.Release|x64.ActiveCfg = Release|x64
93+
{E7365AFD-AB79-41FA-B28B-6A6046A58353}.Release|x64.Build.0 = Release|x64
94+
{5A4006F9-813D-4041-B2CB-BCDFACC75E14}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
95+
{5A4006F9-813D-4041-B2CB-BCDFACC75E14}.Debug|Mixed Platforms.Build.0 = Debug|x64
96+
{5A4006F9-813D-4041-B2CB-BCDFACC75E14}.Debug|Win32.ActiveCfg = Debug|x64
97+
{5A4006F9-813D-4041-B2CB-BCDFACC75E14}.Debug|x64.ActiveCfg = Debug|x64
98+
{5A4006F9-813D-4041-B2CB-BCDFACC75E14}.Debug|x64.Build.0 = Debug|x64
99+
{5A4006F9-813D-4041-B2CB-BCDFACC75E14}.Release|Mixed Platforms.ActiveCfg = Release|x64
100+
{5A4006F9-813D-4041-B2CB-BCDFACC75E14}.Release|Mixed Platforms.Build.0 = Release|x64
101+
{5A4006F9-813D-4041-B2CB-BCDFACC75E14}.Release|Win32.ActiveCfg = Release|x64
102+
{5A4006F9-813D-4041-B2CB-BCDFACC75E14}.Release|x64.ActiveCfg = Release|x64
103+
{5A4006F9-813D-4041-B2CB-BCDFACC75E14}.Release|x64.Build.0 = Release|x64
104+
{85A18606-3B50-43E0-98C0-822B15F14A73}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
105+
{85A18606-3B50-43E0-98C0-822B15F14A73}.Debug|Mixed Platforms.Build.0 = Debug|x64
106+
{85A18606-3B50-43E0-98C0-822B15F14A73}.Debug|Win32.ActiveCfg = Debug|x64
107+
{85A18606-3B50-43E0-98C0-822B15F14A73}.Debug|x64.ActiveCfg = Debug|x64
108+
{85A18606-3B50-43E0-98C0-822B15F14A73}.Debug|x64.Build.0 = Debug|x64
109+
{85A18606-3B50-43E0-98C0-822B15F14A73}.Release|Mixed Platforms.ActiveCfg = Release|x64
110+
{85A18606-3B50-43E0-98C0-822B15F14A73}.Release|Mixed Platforms.Build.0 = Release|x64
111+
{85A18606-3B50-43E0-98C0-822B15F14A73}.Release|Win32.ActiveCfg = Release|x64
112+
{85A18606-3B50-43E0-98C0-822B15F14A73}.Release|x64.ActiveCfg = Release|x64
113+
{85A18606-3B50-43E0-98C0-822B15F14A73}.Release|x64.Build.0 = Release|x64
114+
{CBAD3B01-9E29-480B-9CFE-8199AAF298CD}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
115+
{CBAD3B01-9E29-480B-9CFE-8199AAF298CD}.Debug|Mixed Platforms.Build.0 = Debug|x64
116+
{CBAD3B01-9E29-480B-9CFE-8199AAF298CD}.Debug|Win32.ActiveCfg = Debug|x64
117+
{CBAD3B01-9E29-480B-9CFE-8199AAF298CD}.Debug|x64.ActiveCfg = Debug|x64
118+
{CBAD3B01-9E29-480B-9CFE-8199AAF298CD}.Debug|x64.Build.0 = Debug|x64
119+
{CBAD3B01-9E29-480B-9CFE-8199AAF298CD}.Release|Mixed Platforms.ActiveCfg = Release|x64
120+
{CBAD3B01-9E29-480B-9CFE-8199AAF298CD}.Release|Mixed Platforms.Build.0 = Release|x64
121+
{CBAD3B01-9E29-480B-9CFE-8199AAF298CD}.Release|Win32.ActiveCfg = Release|x64
122+
{CBAD3B01-9E29-480B-9CFE-8199AAF298CD}.Release|x64.ActiveCfg = Release|x64
123+
{CBAD3B01-9E29-480B-9CFE-8199AAF298CD}.Release|x64.Build.0 = Release|x64
124+
{23EF39EE-9114-4F36-BC88-52C9A0F3E4E0}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
125+
{23EF39EE-9114-4F36-BC88-52C9A0F3E4E0}.Debug|Mixed Platforms.Build.0 = Debug|x64
126+
{23EF39EE-9114-4F36-BC88-52C9A0F3E4E0}.Debug|Win32.ActiveCfg = Debug|x64
127+
{23EF39EE-9114-4F36-BC88-52C9A0F3E4E0}.Debug|x64.ActiveCfg = Debug|x64
128+
{23EF39EE-9114-4F36-BC88-52C9A0F3E4E0}.Debug|x64.Build.0 = Debug|x64
129+
{23EF39EE-9114-4F36-BC88-52C9A0F3E4E0}.Release|Mixed Platforms.ActiveCfg = Release|x64
130+
{23EF39EE-9114-4F36-BC88-52C9A0F3E4E0}.Release|Mixed Platforms.Build.0 = Release|x64
131+
{23EF39EE-9114-4F36-BC88-52C9A0F3E4E0}.Release|Win32.ActiveCfg = Release|x64
132+
{23EF39EE-9114-4F36-BC88-52C9A0F3E4E0}.Release|x64.ActiveCfg = Release|x64
133+
{23EF39EE-9114-4F36-BC88-52C9A0F3E4E0}.Release|x64.Build.0 = Release|x64
134+
{4ABAB83E-A2E6-4EA8-ABAB-1C66FA4F5149}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
135+
{4ABAB83E-A2E6-4EA8-ABAB-1C66FA4F5149}.Debug|Mixed Platforms.Build.0 = Debug|x64
136+
{4ABAB83E-A2E6-4EA8-ABAB-1C66FA4F5149}.Debug|Win32.ActiveCfg = Debug|Win32
137+
{4ABAB83E-A2E6-4EA8-ABAB-1C66FA4F5149}.Debug|Win32.Build.0 = Debug|Win32
138+
{4ABAB83E-A2E6-4EA8-ABAB-1C66FA4F5149}.Debug|x64.ActiveCfg = Debug|Win32
139+
{4ABAB83E-A2E6-4EA8-ABAB-1C66FA4F5149}.Release|Mixed Platforms.ActiveCfg = Release|Win32
140+
{4ABAB83E-A2E6-4EA8-ABAB-1C66FA4F5149}.Release|Mixed Platforms.Build.0 = Release|Win32
141+
{4ABAB83E-A2E6-4EA8-ABAB-1C66FA4F5149}.Release|Win32.ActiveCfg = Release|Win32
142+
{4ABAB83E-A2E6-4EA8-ABAB-1C66FA4F5149}.Release|Win32.Build.0 = Release|Win32
143+
{4ABAB83E-A2E6-4EA8-ABAB-1C66FA4F5149}.Release|x64.ActiveCfg = Release|x64
144+
{4ABAB83E-A2E6-4EA8-ABAB-1C66FA4F5149}.Release|x64.Build.0 = Release|x64
145+
EndGlobalSection
146+
GlobalSection(SolutionProperties) = preSolution
147+
HideSolutionNode = FALSE
148+
EndGlobalSection
149+
GlobalSection(NestedProjects) = preSolution
150+
{BE2A527A-DB67-4325-82CA-A49770F79A74} = {7FD8202C-1F23-4BBD-A980-A00E0ADFACFE}
151+
{B26E58E8-3B95-404B-ADC6-8F22463C66C8} = {6D4D677B-4BC6-4CB5-AE0D-70F914A7457F}
152+
{4482141F-E739-420D-BA82-FB1189E4A3D3} = {6D4D677B-4BC6-4CB5-AE0D-70F914A7457F}
153+
{5609820E-BDA5-4B0E-9182-2B87C5E5D8AA} = {6D4D677B-4BC6-4CB5-AE0D-70F914A7457F}
154+
{E7365AFD-AB79-41FA-B28B-6A6046A58353} = {6D4D677B-4BC6-4CB5-AE0D-70F914A7457F}
155+
{5A4006F9-813D-4041-B2CB-BCDFACC75E14} = {6D4D677B-4BC6-4CB5-AE0D-70F914A7457F}
156+
{85A18606-3B50-43E0-98C0-822B15F14A73} = {6D4D677B-4BC6-4CB5-AE0D-70F914A7457F}
157+
{CBAD3B01-9E29-480B-9CFE-8199AAF298CD} = {6D4D677B-4BC6-4CB5-AE0D-70F914A7457F}
158+
{23EF39EE-9114-4F36-BC88-52C9A0F3E4E0} = {6D4D677B-4BC6-4CB5-AE0D-70F914A7457F}
159+
{4ABAB83E-A2E6-4EA8-ABAB-1C66FA4F5149} = {E7A9CAAA-F80F-4FD2-A526-036494FE839E}
160+
EndGlobalSection
161+
EndGlobal

Makefile

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
MAGICK_CORE_NAME=MagickCore-6.Q16
2+
IGNORE_WARN=-Wdeprecated-register
3+
CL_FLAGS=-DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -DHAVE_CONFIG_H -I./ext -O2 $(IGNORE_WARN) -g
4+
LD_FLAGS=-O2 -L./ext -no-undefined -module -avoid-version -rpath /coder -l$(MAGICK_CORE_NAME) -lstdc++
5+
6+
PKM_OBJS=pkm/pkm.c.lo pkm/pkma.c.lo pkm/etc1_comp.cpp.lo pkm/pkm_inner.cpp.lo
7+
PVRTC_OBJS=pvrtc/pvrtc.cpp.lo pvrtc/BitScale.cpp.lo pvrtc/MortonTable.cpp.lo pvrtc/PvrTcDecoder.cpp.lo pvrtc/PvrTcEncoder.cpp.lo pvrt/PvrTcPacket.cpp.lo
8+
9+
all: pkm pvrtc
10+
11+
pkm/pkm.c.lo: pkm/pkm.c
12+
pkm/pkma.c.lo: pkm/pkma.c
13+
pkm/etc1_comp.cpp.lo: pkm/etc1_comp.cpp
14+
pkm/pkm_inner.cpp.lo: pkm/pkm_inner.cpp
15+
16+
pkm: pkm.so
17+
pkm.so: $(PKM_OBJS)
18+
19+
pvrtc/pvrtc.cpp.lo: pvrtc/pvrtc.cpp
20+
pvrtc/BitScale.cpp.lo: pvrtc/BitScale.cpp
21+
pvrtc/MortonTable.cpp.lo: pvrtc/MortonTable.cpp
22+
pvrtc/PvrTcDecoder.cpp.lo: pvrtc/PvrTcDecoder.cpp
23+
pvrtc/PvrTcEncoder.cpp.lo: pvrtc/PvrTcEncoder.cpp
24+
pvrt/PvrTcPacket.cpp.lo: pvrtc/PvrTcPacket.cpp
25+
26+
pvrtc: pvrtc.so
27+
pvrtc.so: $(PVRTC_OBJS)
28+
29+
%.cpp.lo:
30+
glibtool --tag=CC --mode=compile gcc $(CL_FLAGS) -MT $@ -MD -MP -c -o $@ $<
31+
%.c.lo:
32+
glibtool --tag=CC --mode=compile gcc $(CL_FLAGS) -MT $@ -MD -MP -c -o $@ $<
33+
%.so:
34+
glibtool --tag=CC --mode=link gcc $(LD_FLAGS) -o $*.la $^
35+
install_name_tool -change /usr/local/lib/lib$(MAGICK_CORE_NAME).2.dylib ./lib$(MAGICK_CORE_NAME).dylib .libs/$@
36+
37+
38+
clean:
39+
rm -rf .libs
40+
rm -rf $(PKM_OBJS) $(PVRTC_OBJS)

Readme.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
ImageMagickTextureCompressModules
2+
=================================
3+
4+
Texture compress modules for ImageMagick
5+
6+
Supported compression format
7+
----------------------------
8+
* etc1
9+
* pvrtc-4bpp-rgb
10+
* pvrtc-4bpp-rgba
11+
12+
ImageMagick format names
13+
------------------------
14+
* pkm
15+
* compress with etc1
16+
* save as pkm format
17+
* pkma
18+
* compress alpha as grayscale etc1
19+
* save as pkm format
20+
* pvrtc
21+
* read only alias
22+
* can identify pvrtc-4bpp-rgba / pvrtc-4bpp-rgb
23+
* pvrtc4bpprgba
24+
* compress RGBA with pvrtc 4bits-per-pixel
25+
* save as pvr format
26+
* pvrtc4bpprgb
27+
* compress RGB with pvrtc 4bits-per-pixel
28+
* save as pvr format
29+
* discard alpha channel
30+
31+
References
32+
----------
33+
* [rg-etc1](https://code.google.com/p/rg-etc1/)
34+
* [pvrtccompressor](https://bitbucket.org/jthlim/pvrtccompressor)

0 commit comments

Comments
 (0)