From 21fc60ebef3400137bd508e79d1c87214ca74c9b Mon Sep 17 00:00:00 2001
From: Turo Lamminen <turotl@gmail.com>
Date: Sat, 09 May 2015 17:14:55 +0000
Subject: [PATCH] Fix cubemap face offset calculation
---
glddstest.c | 8 ++++----
mojodds.h | 4 ++--
mojodds.c | 8 ++++----
afl-mojodds.c | 4 ++--
ddsinfo.c | 5 +++--
5 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/afl-mojodds.c b/afl-mojodds.c
index 1f7e063..8b5c1c7 100644
--- a/afl-mojodds.c
+++ b/afl-mojodds.c
@@ -73,7 +73,7 @@
const void *miptex = NULL;
unsigned long miptexlen = 0;
unsigned int mipW = 0, mipH = 0;
- retval = MOJODDS_getMipMapTexture(miplevel, glfmt, tex, texlen, w, h, &miptex, &miptexlen, &mipW, &mipH);
+ retval = MOJODDS_getMipMapTexture(miplevel, glfmt, tex, w, h, &miptex, &miptexlen, &mipW, &mipH);
if (!retval) {
continue;
}
@@ -92,7 +92,7 @@
const void *miptex = NULL;
unsigned long miptexlen = 0;
unsigned int mipW = 0, mipH = 0;
- retval = MOJODDS_getCubeFace(cubeFace, miplevel, glfmt, tex, texlen, w, h, &miptex, &miptexlen, &mipW, &mipH);
+ retval = MOJODDS_getCubeFace(cubeFace, miplevel, glfmt, tex, cubemapfacelen, w, h, &miptex, &miptexlen, &mipW, &mipH);
if (!retval) {
continue;
}
diff --git a/ddsinfo.c b/ddsinfo.c
index 32c1f08..e66a524 100644
--- a/ddsinfo.c
+++ b/ddsinfo.c
@@ -74,7 +74,7 @@
const void *miptex = NULL;
unsigned long miptexlen = 0;
unsigned int mipW = 0, mipH = 0;
- retval = MOJODDS_getMipMapTexture(miplevel, glfmt, tex, texlen, w, h, &miptex, &miptexlen, &mipW, &mipH);
+ retval = MOJODDS_getMipMapTexture(miplevel, glfmt, tex, w, h, &miptex, &miptexlen, &mipW, &mipH);
if (!retval) {
printf("MOJODDS_getMipMapTexture(%u) error: %d\n", miplevel, retval);
continue;
@@ -90,13 +90,14 @@
case MOJODDS_TEXTURE_CUBE:
printf("cube\n");
+ printf("cubemapfacelen: %u\n", cubemapfacelen);
printf("\n");
for (unsigned int miplevel = 0; miplevel < miplevels; miplevel++) {
const void *miptex = NULL;
unsigned long miptexlen = 0;
unsigned int mipW = 0, mipH = 0;
- retval = MOJODDS_getCubeFace(MOJODDS_CUBEFACE_POSITIVE_X, miplevel, glfmt, tex, texlen, w, h, &miptex, &miptexlen, &mipW, &mipH);
+ retval = MOJODDS_getCubeFace(MOJODDS_CUBEFACE_POSITIVE_X, miplevel, glfmt, tex, cubemapfacelen, w, h, &miptex, &miptexlen, &mipW, &mipH);
if (!retval) {
printf("MOJODDS_getMipMapTexture(%u) error: %d\n", miplevel, retval);
continue;
diff --git a/glddstest.c b/glddstest.c
index 0a3b4da..3a51022 100644
--- a/glddstest.c
+++ b/glddstest.c
@@ -126,7 +126,7 @@
const void *miptex = NULL;
unsigned long miptexlen = 0;
unsigned int mipW = 0, mipH = 0;
- retval = MOJODDS_getMipMapTexture(miplevel, glfmt, tex, texlen, w, h, &miptex, &miptexlen, &mipW, &mipH);
+ retval = MOJODDS_getMipMapTexture(miplevel, glfmt, tex, w, h, &miptex, &miptexlen, &mipW, &mipH);
if (!retval) {
printf("MOJODDS_getMipMapTexture(%u) error: %d\n", miplevel, retval);
continue;
@@ -152,7 +152,7 @@
const void *miptex = NULL;
unsigned long miptexlen = 0;
unsigned int mipW = 0, mipH = 0;
- retval = MOJODDS_getMipMapTexture(miplevel, glfmt, tex, texlen, w, h, &miptex, &miptexlen, &mipW, &mipH);
+ retval = MOJODDS_getMipMapTexture(miplevel, glfmt, tex, w, h, &miptex, &miptexlen, &mipW, &mipH);
if (!retval) {
printf("MOJODDS_getMipMapTexture(%u) error: %d\n", miplevel, retval);
continue;
@@ -178,7 +178,7 @@
const void *miptex = NULL;
unsigned long miptexlen = 0;
unsigned int mipW = 0, mipH = 0;
- retval = MOJODDS_getCubeFace(cubeFace, miplevel, glfmt, tex, texlen, w, h, &miptex, &miptexlen, &mipW, &mipH);
+ retval = MOJODDS_getCubeFace(cubeFace, miplevel, glfmt, tex, cubemapfacelen, w, h, &miptex, &miptexlen, &mipW, &mipH);
if (!retval) {
printf("MOJODDS_getCubeFace(%u, %u) error: %d\n", cubeFace, miplevel, retval);
continue;
@@ -206,7 +206,7 @@
const void *miptex = NULL;
unsigned long miptexlen = 0;
unsigned int mipW = 0, mipH = 0;
- retval = MOJODDS_getCubeFace(cubeFace, miplevel, glfmt, tex, texlen, w, h, &miptex, &miptexlen, &mipW, &mipH);
+ retval = MOJODDS_getCubeFace(cubeFace, miplevel, glfmt, tex, cubemapfacelen, w, h, &miptex, &miptexlen, &mipW, &mipH);
if (!retval) {
printf("MOJODDS_getCubeFace(%u, %u) error: %d\n", cubeFace, miplevel, retval);
continue;
diff --git a/mojodds.c b/mojodds.c
index 64b6938..7d78d55 100644
--- a/mojodds.c
+++ b/mojodds.c
@@ -438,7 +438,7 @@
} // MOJODDS_getTexture
int MOJODDS_getMipMapTexture(unsigned int miplevel, unsigned int glfmt,
- const void*_basetex, const unsigned long _basetexlen,
+ const void*_basetex,
unsigned int w, unsigned h,
const void **_tex, unsigned long *_texlen,
unsigned int *_texw, unsigned int *_texh)
@@ -512,17 +512,17 @@
int MOJODDS_getCubeFace(MOJODDS_cubeFace cubeFace, unsigned int miplevel,
unsigned int glfmt, const void *_basetex,
- unsigned long _basetexlen, unsigned int w, unsigned h,
+ unsigned long _cubemapfacelen, unsigned int w, unsigned h,
const void **_tex, unsigned long *_texlen,
unsigned int *_texw, unsigned int *_texh)
{
// pick correct face
const char *faceBaseTex = (const char *) _basetex;
- faceBaseTex = faceBaseTex + cubeFace * _basetexlen;
+ faceBaseTex = faceBaseTex + cubeFace * _cubemapfacelen;
// call MOJODDS_getMipMapTexture to get offset in that face
- return MOJODDS_getMipMapTexture(miplevel, glfmt, faceBaseTex, _basetexlen, w, h, _tex, _texlen, _texw, _texh);
+ return MOJODDS_getMipMapTexture(miplevel, glfmt, faceBaseTex, w, h, _tex, _texlen, _texw, _texh);
}
diff --git a/mojodds.h b/mojodds.h
index 711426e..3f9adee 100644
--- a/mojodds.h
+++ b/mojodds.h
@@ -35,14 +35,14 @@
unsigned int *_cubemapfacelen,
MOJODDS_textureType *_textureType);
int MOJODDS_getMipMapTexture(unsigned int miplevel, unsigned int glfmt,
- const void*_basetex, const unsigned long _basetexlen,
+ const void*_basetex,
unsigned int w, unsigned h,
const void **_tex, unsigned long *_texlen,
unsigned int *_texw, unsigned int *_texh);
int MOJODDS_getCubeFace(MOJODDS_cubeFace cubeFace, unsigned int miplevel,
unsigned int glfmt, const void*_basetex,
- unsigned long _basetexlen, unsigned int w, unsigned h,
+ unsigned long _cubemapfacelen, unsigned int w, unsigned h,
const void **_tex, unsigned long *_texlen,
unsigned int *_texw, unsigned int *_texh);
--
Gitblit v1.9.3