Resolved merge conflict

This commit is contained in:
Wade Williams
2013-11-20 11:12:51 -06:00
6 changed files with 121 additions and 119 deletions

View File

@@ -410,11 +410,11 @@ typedef void (* XPMPPlaneNotifier_f)(
*
* This function fetches specific data about a plane in the sim. Pass in a plane ID, a data type
* and a pointer to a struct for the data. The struct's size field must be filled in! The data
* will be returned if possible, as well as the sim cycle the data is from, or 0 if the data could not
* be fetched.
* will be returned if possible, as well as an enum code indicating whether we are returning new
* data, old data, or we have no data at all.
*
*/
int XPMPGetPlaneData(
XPMPPlaneCallbackResult XPMPGetPlaneData(
XPMPPlaneID inPlane,
XPMPPlaneDataType inDataType,
void * outData);

View File

@@ -31,14 +31,14 @@
#if APL
#include <Carbon/Carbon.h>
#if defined(__POWERPC__)
inline void BMP_EndianFlipLong(long * x) { long t = Endian32_Swap(*x); *x = t; }
inline void BMP_EndianFlipInt(int * x) { int t = Endian32_Swap(*x); *x = t; }
inline void BMP_EndianFlipShort(short * x) { short t = Endian16_Swap(*x); *x = t; }
#else
#define BMP_EndianFlipLong(x) (x)
#define BMP_EndianFlipInt(x) (x)
#define BMP_EndianFlipShort(x) (x)
#endif
#else
#define BMP_EndianFlipLong(x) (x)
#define BMP_EndianFlipInt(x) (x)
#define BMP_EndianFlipShort(x) (x)
#endif
@@ -75,7 +75,7 @@ int CreateBitmapFromFile(const char * inFilePath, struct ImageInfo * outImageIn
{
struct BMPHeader header;
struct BMPImageDesc imageDesc;
long pad;
int pad;
int err = 0;
FILE * fi = NULL;
@@ -93,11 +93,11 @@ int CreateBitmapFromFile(const char * inFilePath, struct ImageInfo * outImageIn
if (fread(&imageDesc, sizeof(imageDesc), 1, fi) != 1)
goto bail;
BMP_EndianFlipLong(&header.fileSize);
BMP_EndianFlipLong(&header.dataOffset);
BMP_EndianFlipInt(&header.fileSize);
BMP_EndianFlipInt(&header.dataOffset);
BMP_EndianFlipLong(&imageDesc.imageWidth);
BMP_EndianFlipLong(&imageDesc.imageHeight);
BMP_EndianFlipInt(&imageDesc.imageWidth);
BMP_EndianFlipInt(&imageDesc.imageHeight);
BMP_EndianFlipShort(&imageDesc.bitCount);
if ((header.signature1 != 'B') ||
@@ -158,9 +158,9 @@ int WriteBitmapToFile(const struct ImageInfo * inImage, const char * inFilePath
header.fileSize = sizeof(struct BMPHeader) + sizeof(struct BMPImageDesc) + ((inImage->width * 3 + inImage->pad) * inImage->height);
header.reserved = 0;
header.dataOffset = sizeof(struct BMPHeader) + sizeof(struct BMPImageDesc);
BMP_EndianFlipLong(&header.fileSize);
BMP_EndianFlipLong(&header.reserved);
BMP_EndianFlipLong(&header.dataOffset);
BMP_EndianFlipInt(&header.fileSize);
BMP_EndianFlipInt(&header.reserved);
BMP_EndianFlipInt(&header.dataOffset);
imageDesc.structSize = sizeof(imageDesc);
imageDesc.imageWidth = inImage->width;
@@ -174,17 +174,17 @@ int WriteBitmapToFile(const struct ImageInfo * inImage, const char * inFilePath
imageDesc.colorsUsed = 0;
imageDesc.colorsImportant = 0;
BMP_EndianFlipLong(&imageDesc.structSize);
BMP_EndianFlipLong(&imageDesc.imageWidth);
BMP_EndianFlipLong(&imageDesc.imageHeight);
BMP_EndianFlipInt(&imageDesc.structSize);
BMP_EndianFlipInt(&imageDesc.imageWidth);
BMP_EndianFlipInt(&imageDesc.imageHeight);
BMP_EndianFlipShort(&imageDesc.planes);
BMP_EndianFlipShort(&imageDesc.bitCount);
BMP_EndianFlipLong(&imageDesc.compressionType);
BMP_EndianFlipLong(&imageDesc.imageSize);
BMP_EndianFlipLong(&imageDesc.xPixelsPerM);
BMP_EndianFlipLong(&imageDesc.yPixelsPerM);
BMP_EndianFlipLong(&imageDesc.colorsUsed);
BMP_EndianFlipLong(&imageDesc.colorsImportant);
BMP_EndianFlipInt(&imageDesc.compressionType);
BMP_EndianFlipInt(&imageDesc.imageSize);
BMP_EndianFlipInt(&imageDesc.xPixelsPerM);
BMP_EndianFlipInt(&imageDesc.yPixelsPerM);
BMP_EndianFlipInt(&imageDesc.colorsUsed);
BMP_EndianFlipInt(&imageDesc.colorsImportant);
fi = fopen(inFilePath, "wb");
if (fi == NULL)
@@ -211,7 +211,7 @@ bail:
return err;
}
int CreateNewBitmap(long inWidth, long inHeight, short inChannels, struct ImageInfo * outImageInfo)
int CreateNewBitmap(int inWidth, int inHeight, int inChannels, struct ImageInfo * outImageInfo)
{
outImageInfo->width = inWidth;
outImageInfo->height = inHeight;
@@ -238,14 +238,14 @@ void DestroyBitmap(const struct ImageInfo * inImageInfo)
void CopyBitmapSection(
const struct ImageInfo * inSrc,
const struct ImageInfo * inDst,
long inSrcLeft,
long inSrcTop,
long inSrcRight,
long inSrcBottom,
long inDstLeft,
long inDstTop,
long inDstRight,
long inDstBottom)
int inSrcLeft,
int inSrcTop,
int inSrcRight,
int inSrcBottom,
int inDstLeft,
int inDstTop,
int inDstRight,
int inDstBottom)
{
/* This routine copies a subsection of one bitmap onto a subsection of another, using bicubic interpolation
for scaling. */
@@ -271,9 +271,9 @@ void CopyBitmapSection(
double dx, dy;
long srcRowBytes = inSrc->width * inSrc->channels + inSrc->pad;
long srcRowBytes2 = srcRowBytes * 2;
long dstRowBytes = inDst->width * inSrc->channels + inDst->pad;
int srcRowBytes = inSrc->width * inSrc->channels + inSrc->pad;
int srcRowBytes2 = srcRowBytes * 2;
int dstRowBytes = inDst->width * inSrc->channels + inDst->pad;
unsigned char * srcBaseAddr = inSrc->data;
unsigned char * dstBaseAddr = inDst->data;
@@ -289,8 +289,8 @@ void CopyBitmapSection(
double sx = ((dx - dstLeft) / dstWidth * srcWidth) + srcLeft;
double sy = ((dy - dstTop) / dstHeight * srcHeight) + srcTop;
unsigned char * dstPixel = dstBaseAddr + ((long) dx * inDst->channels) + ((long) dy * dstRowBytes);
unsigned char * srcPixel = srcBaseAddr + ((long) sx * inSrc->channels) + ((long) sy * srcRowBytes);
unsigned char * dstPixel = dstBaseAddr + ((int) dx * inDst->channels) + ((int) dy * dstRowBytes);
unsigned char * srcPixel = srcBaseAddr + ((int) sx * inSrc->channels) + ((int) sy * srcRowBytes);
/* If we would need pixels from off the edge of the image for bicubic interpolation,
just use bilinear. */
@@ -355,18 +355,18 @@ inline double Interp2(double frac, double sml, double big)
void CopyBitmapSectionWarped(
const struct ImageInfo * inSrc,
const struct ImageInfo * inDst,
long inTopLeftX,
long inTopLeftY,
long inTopRightX,
long inTopRightY,
long inBotRightX,
long inBotRightY,
long inBotLeftX,
long inBotLeftY,
long inDstLeft,
long inDstTop,
long inDstRight,
long inDstBottom)
int inTopLeftX,
int inTopLeftY,
int inTopRightX,
int inTopRightY,
int inBotRightX,
int inBotRightY,
int inBotLeftX,
int inBotLeftY,
int inDstLeft,
int inDstTop,
int inDstRight,
int inDstBottom)
{
/* This routine copies a subsection of one bitmap onto a subsection of another, using bicubic interpolation
for scaling. */
@@ -391,9 +391,9 @@ void CopyBitmapSectionWarped(
double dx, dy;
long srcRowBytes = inSrc->width * inSrc->channels + inSrc->pad;
long srcRowBytes2 = srcRowBytes * 2;
long dstRowBytes = inDst->width * inSrc->channels + inDst->pad;
int srcRowBytes = inSrc->width * inSrc->channels + inSrc->pad;
int srcRowBytes2 = srcRowBytes * 2;
int dstRowBytes = inDst->width * inSrc->channels + inDst->pad;
unsigned char * srcBaseAddr = inSrc->data;
unsigned char * dstBaseAddr = inDst->data;
@@ -412,8 +412,8 @@ void CopyBitmapSectionWarped(
double sx = Interp2(frac_y, Interp2(frac_x, topLeftX, topRightX), Interp2(frac_x, botLeftX, botRightX));
double sy = Interp2(frac_x, Interp2(frac_y, topLeftY, botLeftY), Interp2(frac_y, topRightY, botRightY));
unsigned char * dstPixel = dstBaseAddr + ((long) dx * inDst->channels) + ((long) dy * dstRowBytes);
unsigned char * srcPixel = srcBaseAddr + ((long) sx * inSrc->channels) + ((long) sy * srcRowBytes);
unsigned char * dstPixel = dstBaseAddr + ((int) dx * inDst->channels) + ((int) dy * dstRowBytes);
unsigned char * srcPixel = srcBaseAddr + ((int) sx * inSrc->channels) + ((int) sy * srcRowBytes);
/* If we would need pixels from off the edge of the image for bicubic interpolation,
just use bilinear. */
@@ -476,22 +476,22 @@ void RotateBitmapCCW(
/* We have to allocate a new bitmap to transfer our old data to. The new bitmap might not have the same
* storage size as the old bitmap because of padding! */
long newWidth = ioBitmap->height;
long newHeight = ioBitmap->width;
long newPad = ((newWidth * ioBitmap->channels + 3) & ~3) - (newWidth * ioBitmap->channels);
int newWidth = ioBitmap->height;
int newHeight = ioBitmap->width;
int newPad = ((newWidth * ioBitmap->channels + 3) & ~3) - (newWidth * ioBitmap->channels);
unsigned char * newData = (unsigned char *) malloc(((newWidth * ioBitmap->channels) + newPad) * newHeight);
if (newData == NULL)
return;
for (long y = 0; y < ioBitmap->height; ++y)
for (long x = 0; x < ioBitmap->width; ++x)
for (int y = 0; y < ioBitmap->height; ++y)
for (int x = 0; x < ioBitmap->width; ++x)
{
long nx = ioBitmap->height - y - 1;
long ny = x;
int nx = ioBitmap->height - y - 1;
int ny = x;
unsigned char * srcP = ioBitmap->data + (x * ioBitmap->channels) + (y * (ioBitmap->channels * ioBitmap->width + ioBitmap->pad));
unsigned char * dstP = newData + (nx * ioBitmap->channels) + (ny * (ioBitmap->channels * newWidth + newPad));
long chCount = ioBitmap->channels;
int chCount = ioBitmap->channels;
while (chCount--)
{
*dstP++ = *srcP++;
@@ -510,8 +510,8 @@ int ConvertBitmapToAlpha(
struct ImageInfo * ioImage)
{
unsigned char * oldData, * newData, * srcPixel, * dstPixel;
long count;
long x,y;
int count;
int x,y;
if (ioImage->channels == 4)
return 0;
@@ -567,8 +567,8 @@ int ConvertAlphaToBitmap(
struct ImageInfo * ioImage)
{
unsigned char * oldData, * newData, * srcPixel, * dstPixel;
long count;
long x,y;
int count;
int x,y;
if (ioImage->channels == 3)
return 0;

View File

@@ -34,7 +34,7 @@
*/
#if APL
//#pragma options align=mac68k
#pragma pack(push, 2)
#endif
#if IBM
#pragma pack(push, 2)
@@ -43,27 +43,27 @@
struct BMPHeader {
char signature1;
char signature2;
long fileSize;
long reserved;
long dataOffset;
int fileSize;
int reserved;
int dataOffset;
};
struct BMPImageDesc {
long structSize;
long imageWidth;
long imageHeight;
int structSize;
int imageWidth;
int imageHeight;
short planes;
short bitCount;
long compressionType;
long imageSize;
long xPixelsPerM; //130B0000? B013 = 45075?
long yPixelsPerM;
long colorsUsed;
long colorsImportant;
int compressionType;
int imageSize;
int xPixelsPerM; //130B0000? B013 = 45075?
int yPixelsPerM;
int colorsUsed;
int colorsImportant;
};
#if APL
#pragma options align=reset
#pragma pack(pop)
#endif
#if IBM
#pragma pack(pop)
@@ -82,10 +82,10 @@ struct BMPImageDesc {
struct ImageInfo {
unsigned char * data;
long width;
long height;
long pad;
short channels;
int width;
int height;
int pad;
int channels;
};
/* Given a file path and an uninitialized imageInfo structure, this routine fills
@@ -110,7 +110,7 @@ int WriteBitmapToFile(const struct ImageInfo * inImage, const char * inFilePath
/* This routine creates a new bitmap and fills in an uninitialized imageInfo structure.
* The contents of the bitmap are undetermined and must be 'cleared' by you. */
int CreateNewBitmap(long inWidth, long inHeight, short inChannels, struct ImageInfo * outImageInfo);
int CreateNewBitmap(int inWidth, int inHeight, int inChannels, struct ImageInfo * outImageInfo);
/* Given a bitmap, this routine fills the whole bitmap in with a gray level of c, where
* c = 0 means black and c = 255 means white. */
@@ -127,30 +127,30 @@ void DestroyBitmap(const struct ImageInfo * inImageInfo);
void CopyBitmapSection(
const struct ImageInfo * inSrc,
const struct ImageInfo * inDst,
long inSrcLeft,
long inSrcTop,
long inSrcRight,
long inSrcBottom,
long inDstLeft,
long inDstTop,
long inDstRight,
long inDstBottom);
int inSrcLeft,
int inSrcTop,
int inSrcRight,
int inSrcBottom,
int inDstLeft,
int inDstTop,
int inDstRight,
int inDstBottom);
void CopyBitmapSectionWarped(
const struct ImageInfo * inSrc,
const struct ImageInfo * inDst,
long inTopLeftX,
long inTopLeftY,
long inTopRightX,
long inTopRightY,
long inBotRightX,
long inBotRightY,
long inBotLeftX,
long inBotLeftY,
long inDstLeft,
long inDstTop,
long inDstRight,
long inDstBottom);
int inTopLeftX,
int inTopLeftY,
int inTopRightX,
int inTopRightY,
int inBotRightX,
int inBotRightY,
int inBotLeftX,
int inBotLeftY,
int inDstLeft,
int inDstTop,
int inDstRight,
int inDstBottom);
/* This routine rotates a bitmap counterclockwise 90 degrees, exchanging its width
* and height. */

View File

@@ -360,7 +360,7 @@ bool XObjWrite(const char * inFile, const XObj& inObj)
case type_PtLine:
if (gCmds[index].elem_count == 0)
fprintf(fi,"%s %d\t\t//" CRLF, gCmds[index].name, iter->rgb.size());
fprintf(fi,"%s %zd\t\t//" CRLF, gCmds[index].name, iter->rgb.size());
else
fprintf(fi,"%s\t\t//" CRLF, gCmds[index].name);
@@ -378,7 +378,7 @@ bool XObjWrite(const char * inFile, const XObj& inObj)
case type_Poly:
if (gCmds[index].elem_count == 0)
fprintf(fi,"%s %d\t\t//" CRLF, gCmds[index].name, iter->st.size());
fprintf(fi,"%s %zd\t\t//" CRLF, gCmds[index].name, iter->st.size());
else
fprintf(fi,"%s\t\t//" CRLF, gCmds[index].name);

View File

@@ -371,14 +371,17 @@ void XPMPUnregisterPlaneNotifierFunc(
gObservers.erase(iter);
}
int XPMPGetPlaneData(
XPMPPlaneCallbackResult XPMPGetPlaneData(
XPMPPlaneID inPlane,
XPMPPlaneDataType inDataType,
void * outData)
{
XPMPPlanePtr plane = XPMPPlaneIsValid(inPlane, NULL);
XPMPPlaneCallbackResult result = xpmpData_Unavailable;
if (plane == NULL)
return -1;
return result;
int now = XPLMGetCycleNumber();
@@ -387,8 +390,7 @@ int XPMPGetPlaneData(
{
if (plane->posAge != now)
{
XPMPPlaneCallbackResult result =
plane->dataFunc(plane, inDataType, &plane->pos, plane->ref);
result = plane->dataFunc(plane, inDataType, &plane->pos, plane->ref);
if (result == xpmpData_NewData)
plane->posAge = now;
}
@@ -396,38 +398,36 @@ int XPMPGetPlaneData(
XPMPPlanePosition_t * posD = (XPMPPlanePosition_t *) outData;
memcpy(posD, &plane->pos, XPMP_TMIN(posD->size, plane->pos.size));
return plane->posAge;
break;
}
case xpmpDataType_Surfaces:
{
if (plane->surfaceAge != now)
{
XPMPPlaneCallbackResult result =
plane->dataFunc(plane, inDataType, &plane->surface, plane->ref);
result = plane->dataFunc(plane, inDataType, &plane->surface, plane->ref);
if (result == xpmpData_NewData)
plane->surfaceAge = now;
}
XPMPPlaneSurfaces_t * surfD = (XPMPPlaneSurfaces_t *) outData;
memcpy(surfD, &plane->surface, XPMP_TMIN(surfD->size, plane->surface.size));
return plane->surfaceAge;
break;
}
case xpmpDataType_Radar:
{
if (plane->radarAge != now)
{
XPMPPlaneCallbackResult result =
plane->dataFunc(plane, inDataType, &plane->radar, plane->ref);
result = plane->dataFunc(plane, inDataType, &plane->radar, plane->ref);
if (result == xpmpData_NewData)
plane->radarAge = now;
}
XPMPPlaneRadar_t * radD = (XPMPPlaneRadar_t *) outData;
memcpy(radD, &plane->radar, XPMP_TMIN(radD->size, plane->radar.size));
return plane->radarAge;
break;
}
}
return -1;
return result;
}
XPMPPlanePtr XPMPPlaneIsValid(XPMPPlaneID inID, XPMPPlaneVector::iterator * outIter)

View File

@@ -345,6 +345,8 @@ int OBJ_LoadModel(const char * inFilePath)
tex_path += sObjects.back().obj.texture;
tex_path += ".png";
sObjects.back().texnum = OBJ_LoadTexture(tex_path.c_str(), false);
if(sObjects.back().texnum == 0)
printf("WARNING: %s failed to load for %s.\n", tex_path.c_str(),inFilePath);
tex_path = path;
p = tex_path.find_last_of("\\:/");//XPLMGetDirectorySeparator());