summaryrefslogtreecommitdiff
path: root/thirdparty/etc2comp/Etc.h
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2017-06-13 19:17:13 -0300
committerGitHub <noreply@github.com>2017-06-13 19:17:13 -0300
commita8e845a474c01c4cde1416ed00e6ae456786c1fb (patch)
tree073d311971752a8fbd3df72def311c6f70e8e8de /thirdparty/etc2comp/Etc.h
parenta8a1f2e2a864e6b58d5bcf1c7e53a43cdb6d95d9 (diff)
parent6a9c990da72a737fa95d9e97d53f835706aea7c3 (diff)
Merge pull request #8548 from tagcup/etc2comp
Add ETC1/ETC2 compression support though etc2comp.
Diffstat (limited to 'thirdparty/etc2comp/Etc.h')
-rw-r--r--thirdparty/etc2comp/Etc.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/thirdparty/etc2comp/Etc.h b/thirdparty/etc2comp/Etc.h
new file mode 100644
index 0000000000..439388d649
--- /dev/null
+++ b/thirdparty/etc2comp/Etc.h
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2015 The Etc2Comp Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include "EtcConfig.h"
+#include "EtcImage.h"
+#include "EtcColor.h"
+#include "EtcErrorMetric.h"
+#include <memory>
+
+#define ETCCOMP_MIN_EFFORT_LEVEL (0.0f)
+#define ETCCOMP_DEFAULT_EFFORT_LEVEL (40.0f)
+#define ETCCOMP_MAX_EFFORT_LEVEL (100.0f)
+
+namespace Etc
+{
+ class Block4x4EncodingBits;
+
+ struct RawImage
+ {
+ int uiExtendedWidth;
+ int uiExtendedHeight;
+ unsigned int uiEncodingBitsBytes;
+ std::shared_ptr<unsigned char> paucEncodingBits;
+ };
+
+
+
+ // C-style inteface to the encoder
+ void Encode(float *a_pafSourceRGBA,
+ unsigned int a_uiSourceWidth,
+ unsigned int a_uiSourceHeight,
+ Image::Format a_format,
+ ErrorMetric a_eErrMetric,
+ float a_fEffort,
+ unsigned int a_uiJobs,
+ unsigned int a_uimaxJobs,
+ unsigned char **a_ppaucEncodingBits,
+ unsigned int *a_puiEncodingBitsBytes,
+ unsigned int *a_puiExtendedWidth,
+ unsigned int *a_puiExtendedHeight,
+ int *a_piEncodingTime_ms, bool a_bVerboseOutput = false);
+
+ void EncodeMipmaps(float *a_pafSourceRGBA,
+ unsigned int a_uiSourceWidth,
+ unsigned int a_uiSourceHeight,
+ Image::Format a_format,
+ ErrorMetric a_eErrMetric,
+ float a_fEffort,
+ unsigned int a_uiJobs,
+ unsigned int a_uiMaxJobs,
+ unsigned int a_uiMaxMipmaps,
+ unsigned int a_uiMipFilterFlags,
+ RawImage* a_pMipmaps,
+ int *a_piEncodingTime_ms, bool a_bVerboseOutput = false);
+
+}