Nehe20 Build Fix + Warnings cleanup for GCC14.1.0.
Newest toolchain is bitchier, so I wanted to go ahead and clear up all of the warnings from building GLdc and the various examples... 1) Set CMake CXX standard to 14 instead of 11, since CXXFLAGS were enforcing that language standard anyway. 2) Fixed a bunch of strict aliasing violations in immediate.c: glVertex3f. 3) Removed or commented out lots of unused variables. 4) Fixed some "suggested inner braces on initializer" crap. 5) Fixed a bunch of signed vs unsigned pointer assignments. 6) Fixed several printf() warnings from using %d with int32_t (needs to be %ld for long int). 7) Fixed build issue with Nehe20 from not including kos.h for the KOS_ROMDISK macro. 8) Fixed some signed vs unsigned comparison mismatches in C++ template instantiations within clipping tests. 9)
This commit is contained in:
parent
a68c4bf6ac
commit
49f2f0917b
@ -22,7 +22,7 @@ string(TOUPPER ${BACKEND} BACKEND_UPPER)
|
||||
add_definitions(-DBACKEND_${BACKEND_UPPER})
|
||||
|
||||
set(CMAKE_C_STANDARD 99)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
|
||||
include_directories(include)
|
||||
|
||||
|
@ -158,6 +158,14 @@ void APIENTRY glColor3fv(const GLfloat* v) {
|
||||
COLOR[B8IDX] = (GLubyte)(v[2] * 255);
|
||||
}
|
||||
|
||||
typedef union punned {
|
||||
GLubyte* byte;
|
||||
GLfloat* flt;
|
||||
uint32_t* u32;
|
||||
void* vptr;
|
||||
uintptr_t uptr;
|
||||
} punned_t;
|
||||
|
||||
void APIENTRY glVertex3f(GLfloat x, GLfloat y, GLfloat z) {
|
||||
IM_ENABLED_VERTEX_ATTRIBUTES |= VERTEX_ENABLED_FLAG;
|
||||
|
||||
@ -170,18 +178,18 @@ void APIENTRY glVertex3f(GLfloat x, GLfloat y, GLfloat z) {
|
||||
IM_ATTRIBS.colour.ptr = IM_ATTRIBS.st.ptr + 8;
|
||||
IM_ATTRIBS.normal.ptr = IM_ATTRIBS.colour.ptr + 4;
|
||||
|
||||
uint32_t* dest = (uint32_t*) &vert->x;
|
||||
*(dest++) = *((uint32_t*) &x);
|
||||
*(dest++) = *((uint32_t*) &y);
|
||||
*(dest++) = *((uint32_t*) &z);
|
||||
*(dest++) = *((uint32_t*) &UV_COORD[0]);
|
||||
*(dest++) = *((uint32_t*) &UV_COORD[1]);
|
||||
*(dest++) = *((uint32_t*) &ST_COORD[0]);
|
||||
*(dest++) = *((uint32_t*) &ST_COORD[1]);
|
||||
*(dest++) = *((uint32_t*) COLOR);
|
||||
*(dest++) = *((uint32_t*) &NORMAL[0]);
|
||||
*(dest++) = *((uint32_t*) &NORMAL[1]);
|
||||
*(dest++) = *((uint32_t*) &NORMAL[2]);
|
||||
punned_t dest = { .flt = &vert->x };
|
||||
*(dest.flt++) = x;
|
||||
*(dest.flt++) = y;
|
||||
*(dest.flt++) = z;
|
||||
*(dest.flt++) = UV_COORD[0];
|
||||
*(dest.flt++) = UV_COORD[1];
|
||||
*(dest.flt++) = ST_COORD[0];
|
||||
*(dest.flt++) = ST_COORD[1];
|
||||
*(dest.u32++) = *((uint32_t*)(void*) COLOR);
|
||||
*(dest.flt++) = NORMAL[0];
|
||||
*(dest.flt++) = NORMAL[1];
|
||||
*(dest.flt++) = NORMAL[2];
|
||||
}
|
||||
|
||||
void APIENTRY glVertex3fv(const GLfloat* v) {
|
||||
|
@ -80,9 +80,7 @@ static struct {
|
||||
.color_control = GL_SINGLE_COLOR,
|
||||
.color_material_mode = GL_AMBIENT_AND_DIFFUSE,
|
||||
.color_material_mask = AMBIENT_MASK | DIFFUSE_MASK,
|
||||
.lights = {0},
|
||||
.enabled_light_count = 0,
|
||||
.material = {0},
|
||||
.shade_model = GL_SMOOTH
|
||||
};
|
||||
|
||||
|
@ -80,7 +80,6 @@ void DrawGLScene()
|
||||
{
|
||||
const float RED [] = {1.0, 0, 0, 0.5};
|
||||
const float BLUE [] = {0.0, 0, 1, 0.5};
|
||||
const float NONE [] = {0, 0, 0, 0};
|
||||
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer
|
||||
|
||||
|
@ -48,7 +48,6 @@ int dtex_to_gl_texture(texture *tex, char* filename) {
|
||||
GLboolean twiddled = (header.type & (1 << 26)) < 1;
|
||||
GLboolean compressed = (header.type & (1 << 30)) > 0;
|
||||
GLboolean mipmapped = (header.type & (1 << 31)) > 0;
|
||||
GLboolean strided = (header.type & (1 << 25)) > 0;
|
||||
GLuint format = (header.type >> 27) & 0b111;
|
||||
|
||||
image->data = (char *) malloc (header.size);
|
||||
|
@ -26,7 +26,7 @@ KOS_INIT_ROMDISK(romdisk);
|
||||
float xrot, yrot, zrot;
|
||||
|
||||
/* storage for one texture */
|
||||
int texture[1];
|
||||
GLuint texture[1];
|
||||
|
||||
// Load Bitmaps And Convert To Textures
|
||||
void LoadGLTextures() {
|
||||
@ -81,7 +81,7 @@ void InitGL(int Width, int Height) // We call this right after our OpenG
|
||||
|
||||
GLfloat l1_pos[] = {5.0, 0.0, 1.0, 1.0};
|
||||
GLfloat l1_diff[] = {1.0, 0.0, 0.0, 1.0};
|
||||
GLfloat l1_amb[] = {0.5, 0.5, 0.5, 1.0};
|
||||
//GLfloat l1_amb[] = {0.5, 0.5, 0.5, 1.0};
|
||||
|
||||
//glLightfv(GL_LIGHT1, GL_AMBIENT, l1_amb);
|
||||
glLightfv(GL_LIGHT1, GL_DIFFUSE, l1_diff);
|
||||
@ -93,7 +93,7 @@ void InitGL(int Width, int Height) // We call this right after our OpenG
|
||||
GLfloat l2_pos[] = {0.0, 15.0, 1.0, 1.0};
|
||||
GLfloat l2_dir[] = {0.0, -1.0, 0.0};
|
||||
GLfloat l2_diff[] = {0.5, 0.5, 0.0, 1.0};
|
||||
GLfloat l2_amb[] = {0.5, 0.5, 0.5, 1.0};
|
||||
//GLfloat l2_amb[] = {0.5, 0.5, 0.5, 1.0};
|
||||
|
||||
glEnable(GL_LIGHT2);
|
||||
glLightfv(GL_LIGHT2, GL_DIFFUSE, l2_diff);
|
||||
@ -145,7 +145,7 @@ void DrawTexturedQuad(int tex, float x, float y, float z)
|
||||
GLfloat y0 = y - texH / 2;
|
||||
GLfloat x1 = x + texW / 2;
|
||||
GLfloat y1 = y + texH / 2;
|
||||
GLfloat color[] = {1.0f, 1.0f, 1.0f, 1.0f};
|
||||
//GLfloat color[] = {1.0f, 1.0f, 1.0f, 1.0f};
|
||||
GLfloat mat_ambient[] = {1.0f, 1.0f, 1.0f, 1.0f};
|
||||
|
||||
GLfloat vertex_data[] = {
|
||||
@ -172,14 +172,6 @@ void DrawTexturedQuad(int tex, float x, float y, float z)
|
||||
0.0, 0.0, 1.0
|
||||
};
|
||||
|
||||
GLfloat color_data[] = {
|
||||
/* 2D Coordinate, texture coordinate */
|
||||
color[0], color[1], color[2], color[3],
|
||||
color[0], color[1], color[2], color[3],
|
||||
color[0], color[1], color[2], color[3],
|
||||
color[0], color[1], color[2], color[3]
|
||||
};
|
||||
|
||||
//GLint indices[] = {0,1,2,3,2,3};
|
||||
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
|
@ -24,8 +24,7 @@ KOS_INIT_ROMDISK(romdisk);
|
||||
#include "../loadbmp.h"
|
||||
|
||||
float xrot, yrot, zrot;
|
||||
|
||||
int texture[1];
|
||||
GLuint texture[1];
|
||||
|
||||
void LoadGLTextures() {
|
||||
|
||||
|
@ -35,7 +35,7 @@ int ImageLoad(char *filename, Image *image) {
|
||||
return 0;
|
||||
}
|
||||
image->sizeX = sizeX;
|
||||
printf("Width of %s: %d\n", filename, sizeX);
|
||||
printf("Width of %s: %ld\n", filename, sizeX);
|
||||
|
||||
// read the height
|
||||
if ((i = fread(&sizeY, 4, 1, file)) != 1) {
|
||||
@ -43,7 +43,7 @@ int ImageLoad(char *filename, Image *image) {
|
||||
return 0;
|
||||
}
|
||||
image->sizeY = sizeY;
|
||||
printf("Height of %s: %d\n", filename, sizeY);
|
||||
printf("Height of %s: %ld\n", filename, sizeY);
|
||||
|
||||
// calculate the size (assuming 24 bits or 3 bytes per pixel).
|
||||
size = image->sizeX * image->sizeY * 3;
|
||||
|
@ -20,9 +20,7 @@ KOS_INIT_ROMDISK(romdisk);
|
||||
#endif
|
||||
|
||||
#include "../loadbmp.h"
|
||||
|
||||
/* storage for one texture */
|
||||
int texture[1];
|
||||
GLuint texture[1];
|
||||
|
||||
// Load Bitmaps And Convert To Textures
|
||||
void LoadGLTextures() {
|
||||
|
@ -62,7 +62,7 @@ int ImageLoad(char *filename, Image *image) {
|
||||
GLboolean twiddled = (header.type & (1 << 26)) < 1;
|
||||
GLboolean compressed = (header.type & (1 << 30)) > 0;
|
||||
GLboolean mipmapped = (header.type & (1 << 31)) > 0;
|
||||
GLboolean strided = (header.type & (1 << 25)) > 0;
|
||||
//GLboolean strided = (header.type & (1 << 25)) > 0;
|
||||
GLuint format = (header.type >> 27) & 0b111;
|
||||
|
||||
image->data = (char *) malloc (header.size);
|
||||
@ -70,8 +70,8 @@ int ImageLoad(char *filename, Image *image) {
|
||||
image->sizeY = header.height;
|
||||
image->dataSize = header.size;
|
||||
|
||||
GLuint expected = 2 * header.width * header.height;
|
||||
GLuint ratio = (GLuint) (((GLfloat) expected) / ((GLfloat) header.size));
|
||||
//GLuint expected = 2 * header.width * header.height;
|
||||
//GLuint ratio = (GLuint) (((GLfloat) expected) / ((GLfloat) header.size));
|
||||
|
||||
fread(image->data, image->dataSize, 1, file);
|
||||
fclose(file);
|
||||
|
@ -22,7 +22,7 @@ KOS_INIT_ROMDISK(romdisk);
|
||||
float xrot, yrot, zrot;
|
||||
|
||||
/* storage for one texture */
|
||||
int texture[1];
|
||||
GLuint texture[1];
|
||||
|
||||
/* Image type - contains height, width, and data */
|
||||
struct Image {
|
||||
@ -59,7 +59,7 @@ int ImageLoad(char *filename, Image *image) {
|
||||
GLboolean twiddled = (header.type & (1 << 26)) < 1;
|
||||
GLboolean compressed = (header.type & (1 << 30)) > 0;
|
||||
GLboolean mipmapped = (header.type & (1 << 31)) > 0;
|
||||
GLboolean strided = (header.type & (1 << 25)) > 0;
|
||||
//GLboolean strided = (header.type & (1 << 25)) > 0;
|
||||
GLuint format = (header.type >> 27) & 0b111;
|
||||
|
||||
image->data = (char *) malloc (header.size);
|
||||
@ -67,8 +67,8 @@ int ImageLoad(char *filename, Image *image) {
|
||||
image->sizeY = header.height;
|
||||
image->dataSize = header.size;
|
||||
|
||||
GLuint expected = 2 * header.width * header.height;
|
||||
GLuint ratio = (GLuint) (((GLfloat) expected) / ((GLfloat) header.size));
|
||||
//GLuint expected = 2 * header.width * header.height;
|
||||
//GLuint ratio = (GLuint) (((GLfloat) expected) / ((GLfloat) header.size));
|
||||
|
||||
fread(image->data, image->dataSize, 1, file);
|
||||
fclose(file);
|
||||
|
@ -11,6 +11,11 @@
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
|
||||
#ifdef __DREAMCAST__
|
||||
#include <kos.h>
|
||||
#endif
|
||||
|
||||
#define FPS 60
|
||||
uint32_t waittime = 1000.0f/FPS;
|
||||
uint32_t framestarttime = 0;
|
||||
@ -227,8 +232,6 @@ int DrawGLScene(GLvoid) // Here's Where We Do All The Drawing
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
BOOL done=FALSE; // Bool Variable To Exit Loop
|
||||
|
||||
glKosInit();
|
||||
|
||||
InitGL();
|
||||
|
@ -22,8 +22,7 @@ KOS_INIT_ROMDISK(romdisk);
|
||||
|
||||
/* floats for x rotation, y rotation, z rotation */
|
||||
float xrot, yrot, zrot;
|
||||
/* storage for one texture */
|
||||
int texture[1];
|
||||
GLuint texture[1];
|
||||
|
||||
typedef struct {
|
||||
unsigned int height;
|
||||
|
@ -41,7 +41,7 @@
|
||||
/* floats for x rotation, y rotation, z rotation */
|
||||
float xrot, yrot, zrot;
|
||||
|
||||
int textures[3];
|
||||
GLuint textures[3];
|
||||
|
||||
typedef struct {
|
||||
uint32_t height;
|
||||
@ -272,7 +272,7 @@ int BMP_GetPalette(FILE *pFile)
|
||||
bitCount = BmpInfoHeader.ClrImportant * sizeof(RGB_QUAD);
|
||||
|
||||
if (fread(BmpRgbQuad, 1, bitCount, pFile) != bitCount){
|
||||
fprintf(stderr, "Failed to read palette: %d\n", bitCount);
|
||||
fprintf(stderr, "Failed to read palette: %ld\n", bitCount);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -293,7 +293,7 @@ int BMP_GetPalette(FILE *pFile)
|
||||
int BMP_Depack(FILE *pFile,char *pZone)
|
||||
{
|
||||
char PadRead[4];
|
||||
int32_t i, j, Offset, PadSize, pix, c;
|
||||
int32_t i, j, Offset, PadSize, c;
|
||||
|
||||
if (BmpInfoHeader.Compression != BMP_BI_RGB)
|
||||
return 0;
|
||||
@ -356,7 +356,7 @@ int LoadPalettedBMP(const char* filename, Image* image)
|
||||
}
|
||||
|
||||
/* store palette information */
|
||||
image->palette = BmpPal;
|
||||
image->palette = (char*)BmpPal;
|
||||
image->palette_width = 16;
|
||||
|
||||
|
||||
|
@ -287,7 +287,7 @@ static bool write_samples(const char* path) {
|
||||
root = ARCS;
|
||||
for(int i = 0; i < BUCKET_SIZE; ++i) {
|
||||
if(root->pc) {
|
||||
printf("Incrementing %d for %x. ", (root->pc - lowest_address) / bin_size, (unsigned int) root->pc);
|
||||
printf("Incrementing %ld for %x. ", (root->pc - lowest_address) / bin_size, (unsigned int) root->pc);
|
||||
bins[(root->pc - lowest_address) / bin_size]++;
|
||||
printf("Now: %d\n", (int) bins[(root->pc - lowest_address) / bin_size]);
|
||||
|
||||
|
@ -435,7 +435,7 @@ bool test_clip_case_001() {
|
||||
|
||||
SceneListSubmit(&data[0], data.size());
|
||||
|
||||
check_equal(sent.size(), 5);
|
||||
check_equal(sent.size(), 5u);
|
||||
check_equal(sent[0].flags, GPU_CMD_POLYHDR);
|
||||
check_equal(sent[1].flags, GPU_CMD_VERTEX);
|
||||
check_equal(sent[2].flags, GPU_CMD_VERTEX);
|
||||
@ -461,7 +461,7 @@ bool test_clip_case_010() {
|
||||
|
||||
SceneListSubmit(&data[0], data.size());
|
||||
|
||||
check_equal(sent.size(), 4);
|
||||
check_equal(sent.size(), 4u);
|
||||
check_equal(sent[0].flags, GPU_CMD_POLYHDR);
|
||||
check_equal(sent[1].flags, GPU_CMD_VERTEX);
|
||||
check_equal(sent[2].flags, GPU_CMD_VERTEX);
|
||||
@ -481,7 +481,7 @@ bool test_clip_case_100() {
|
||||
|
||||
SceneListSubmit(&data[0], data.size());
|
||||
|
||||
check_equal(sent.size(), 5);
|
||||
check_equal(sent.size(), 5u);
|
||||
check_equal(sent[0].flags, GPU_CMD_POLYHDR);
|
||||
check_equal(sent[1].flags, GPU_CMD_VERTEX);
|
||||
check_equal(sent[2].flags, GPU_CMD_VERTEX);
|
||||
@ -507,7 +507,7 @@ bool test_clip_case_110() {
|
||||
|
||||
SceneListSubmit(&data[0], data.size());
|
||||
|
||||
check_equal(sent.size(), 6);
|
||||
check_equal(sent.size(), 6u);
|
||||
check_equal(sent[0].flags, GPU_CMD_POLYHDR);
|
||||
check_equal(sent[1].flags, GPU_CMD_VERTEX);
|
||||
check_equal(sent[2].flags, GPU_CMD_VERTEX);
|
||||
@ -530,7 +530,7 @@ bool test_clip_case_011() {
|
||||
|
||||
SceneListSubmit(&data[0], data.size());
|
||||
|
||||
check_equal(sent.size(), 6);
|
||||
check_equal(sent.size(), 6u);
|
||||
check_equal(sent[0].flags, GPU_CMD_POLYHDR);
|
||||
check_equal(sent[1].flags, GPU_CMD_VERTEX);
|
||||
check_equal(sent[2].flags, GPU_CMD_VERTEX);
|
||||
@ -553,7 +553,7 @@ bool test_clip_case_101() {
|
||||
|
||||
SceneListSubmit(&data[0], data.size());
|
||||
|
||||
check_equal(sent.size(), 6);
|
||||
check_equal(sent.size(), 6u);
|
||||
check_equal(sent[0].flags, GPU_CMD_POLYHDR);
|
||||
check_equal(sent[1].flags, GPU_CMD_VERTEX);
|
||||
check_equal(sent[2].flags, GPU_CMD_VERTEX);
|
||||
@ -576,7 +576,7 @@ bool test_clip_case_111() {
|
||||
|
||||
SceneListSubmit(&data[0], data.size());
|
||||
|
||||
check_equal(sent.size(), 4);
|
||||
check_equal(sent.size(), 4u);
|
||||
check_equal(sent[0].flags, GPU_CMD_POLYHDR);
|
||||
check_equal(sent[1].flags, GPU_CMD_VERTEX);
|
||||
check_equal(sent[2].flags, GPU_CMD_VERTEX);
|
||||
|
Loading…
Reference in New Issue
Block a user