mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-24 05:10:42 -04:00
commit
b7346799d3
3
Makefile
3
Makefile
@ -88,8 +88,9 @@ endif
|
|||||||
|
|
||||||
ifeq ($(PLAT),hp-ux)
|
ifeq ($(PLAT),hp-ux)
|
||||||
CC = gcc
|
CC = gcc
|
||||||
|
CFLAGS += -std=c99 -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_DEFAULT_SOURCE -D_BSD_SOURCE
|
||||||
LDFLAGS =
|
LDFLAGS =
|
||||||
LIBS = -lm -lX11 -lXi -lXext -L/opt/graphics/OpenGL/lib -lGL -lpthread
|
LIBS = -lm -lX11 -lXi -lXext -L/opt/graphics/OpenGL/lib/hpux32 -lGL -lpthread
|
||||||
BUILD_DIR = build/hpux
|
BUILD_DIR = build/hpux
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -74,6 +74,7 @@ And also runs on:
|
|||||||
* Haiku - needs <code>openal</code> package (if you have a GitHub account, can [download from here](https://github.com/ClassiCube/ClassiCube/actions/workflows/build_haiku.yml))
|
* Haiku - needs <code>openal</code> package (if you have a GitHub account, can [download from here](https://github.com/ClassiCube/ClassiCube/actions/workflows/build_haiku.yml))
|
||||||
* BeOS - untested on actual hardware
|
* BeOS - untested on actual hardware
|
||||||
* IRIX - needs <code>openal</code> packages
|
* IRIX - needs <code>openal</code> packages
|
||||||
|
* HPUX - tested on 11v3 IA64
|
||||||
* SerenityOS - needs <code>SDL2</code>
|
* SerenityOS - needs <code>SDL2</code>
|
||||||
* Classic Mac OS (System 7 and later)
|
* Classic Mac OS (System 7 and later)
|
||||||
* Dreamcast - unfinished, but usable (can [download from here](https://www.classicube.net/download/dreamcast))
|
* Dreamcast - unfinished, but usable (can [download from here](https://www.classicube.net/download/dreamcast))
|
||||||
|
@ -362,6 +362,7 @@ typedef cc_uint8 cc_bool;
|
|||||||
#define CC_BIG_ENDIAN
|
#define CC_BIG_ENDIAN
|
||||||
#define CC_BUILD_NOMUSIC
|
#define CC_BUILD_NOMUSIC
|
||||||
#define CC_BUILD_NOSOUNDS
|
#define CC_BUILD_NOSOUNDS
|
||||||
|
#define CC_BUILD_GL11_FALLBACK
|
||||||
#define DEFAULT_NET_BACKEND CC_NET_BACKEND_BUILTIN
|
#define DEFAULT_NET_BACKEND CC_NET_BACKEND_BUILTIN
|
||||||
#define DEFAULT_AUD_BACKEND CC_AUD_BACKEND_NULL
|
#define DEFAULT_AUD_BACKEND CC_AUD_BACKEND_NULL
|
||||||
#define DEFAULT_GFX_BACKEND CC_GFX_BACKEND_GL1
|
#define DEFAULT_GFX_BACKEND CC_GFX_BACKEND_GL1
|
||||||
|
@ -207,27 +207,27 @@ void Gfx_SetDynamicVbData(GfxResourceID vb, void* vertices, int vCount) {
|
|||||||
#define IB_PTR NULL
|
#define IB_PTR NULL
|
||||||
|
|
||||||
static void GL_SetupVbColoured(void) {
|
static void GL_SetupVbColoured(void) {
|
||||||
_glVertexPointer(3, GL_FLOAT, SIZEOF_VERTEX_COLOURED, VB_PTR + 0);
|
_glVertexPointer(3, GL_FLOAT, SIZEOF_VERTEX_COLOURED, (GLpointer)(VB_PTR + 0));
|
||||||
_glColorPointer(4, GL_UNSIGNED_BYTE, SIZEOF_VERTEX_COLOURED, VB_PTR + 12);
|
_glColorPointer(4, GL_UNSIGNED_BYTE, SIZEOF_VERTEX_COLOURED, (GLpointer)(VB_PTR + 12));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void GL_SetupVbTextured(void) {
|
static void GL_SetupVbTextured(void) {
|
||||||
_glVertexPointer(3, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, VB_PTR + 0);
|
_glVertexPointer(3, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, (GLpointer)(VB_PTR + 0));
|
||||||
_glColorPointer(4, GL_UNSIGNED_BYTE, SIZEOF_VERTEX_TEXTURED, VB_PTR + 12);
|
_glColorPointer(4, GL_UNSIGNED_BYTE, SIZEOF_VERTEX_TEXTURED, (GLpointer)(VB_PTR + 12));
|
||||||
_glTexCoordPointer(2, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, VB_PTR + 16);
|
_glTexCoordPointer(2, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, (GLpointer)(VB_PTR + 16));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void GL_SetupVbColoured_Range(int startVertex) {
|
static void GL_SetupVbColoured_Range(int startVertex) {
|
||||||
cc_uint32 offset = startVertex * SIZEOF_VERTEX_COLOURED;
|
cc_uint32 offset = startVertex * SIZEOF_VERTEX_COLOURED;
|
||||||
_glVertexPointer(3, GL_FLOAT, SIZEOF_VERTEX_COLOURED, VB_PTR + offset + 0);
|
_glVertexPointer(3, GL_FLOAT, SIZEOF_VERTEX_COLOURED, (GLpointer)(VB_PTR + offset + 0));
|
||||||
_glColorPointer(4, GL_UNSIGNED_BYTE, SIZEOF_VERTEX_COLOURED, VB_PTR + offset + 12);
|
_glColorPointer(4, GL_UNSIGNED_BYTE, SIZEOF_VERTEX_COLOURED, (GLpointer)(VB_PTR + offset + 12));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void GL_SetupVbTextured_Range(int startVertex) {
|
static void GL_SetupVbTextured_Range(int startVertex) {
|
||||||
cc_uint32 offset = startVertex * SIZEOF_VERTEX_TEXTURED;
|
cc_uint32 offset = startVertex * SIZEOF_VERTEX_TEXTURED;
|
||||||
_glVertexPointer(3, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, VB_PTR + offset + 0);
|
_glVertexPointer(3, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, (GLpointer)(VB_PTR + offset + 0));
|
||||||
_glColorPointer(4, GL_UNSIGNED_BYTE, SIZEOF_VERTEX_TEXTURED, VB_PTR + offset + 12);
|
_glColorPointer(4, GL_UNSIGNED_BYTE, SIZEOF_VERTEX_TEXTURED, (GLpointer)(VB_PTR + offset + 12));
|
||||||
_glTexCoordPointer(2, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, VB_PTR + offset + 16);
|
_glTexCoordPointer(2, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, (GLpointer)(VB_PTR + offset + 16));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Gfx_SetVertexFormat(VertexFormat fmt) {
|
void Gfx_SetVertexFormat(VertexFormat fmt) {
|
||||||
@ -267,9 +267,9 @@ void Gfx_DrawVb_IndexedTris(int verticesCount) {
|
|||||||
|
|
||||||
void Gfx_DrawIndexedTris_T2fC4b(int verticesCount, int startVertex) {
|
void Gfx_DrawIndexedTris_T2fC4b(int verticesCount, int startVertex) {
|
||||||
cc_uint32 offset = startVertex * SIZEOF_VERTEX_TEXTURED;
|
cc_uint32 offset = startVertex * SIZEOF_VERTEX_TEXTURED;
|
||||||
_glVertexPointer(3, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, VB_PTR + offset + 0);
|
_glVertexPointer(3, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, (GLpointer)(VB_PTR + offset + 0));
|
||||||
_glColorPointer(4, GL_UNSIGNED_BYTE, SIZEOF_VERTEX_TEXTURED, VB_PTR + offset + 12);
|
_glColorPointer(4, GL_UNSIGNED_BYTE, SIZEOF_VERTEX_TEXTURED, (GLpointer)(VB_PTR + offset + 12));
|
||||||
_glTexCoordPointer(2, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, VB_PTR + offset + 16);
|
_glTexCoordPointer(2, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, (GLpointer)(VB_PTR + offset + 16));
|
||||||
_glDrawElements(GL_TRIANGLES, ICOUNT(verticesCount), GL_UNSIGNED_SHORT, IB_PTR);
|
_glDrawElements(GL_TRIANGLES, ICOUNT(verticesCount), GL_UNSIGNED_SHORT, IB_PTR);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -585,7 +585,7 @@ static void APIENTRY gl10_colorPointer(GLint size, GLenum type, GLsizei stride,
|
|||||||
static void APIENTRY gl10_texCoordPointer(GLint size, GLenum type, GLsizei stride, GLpointer offset) {
|
static void APIENTRY gl10_texCoordPointer(GLint size, GLenum type, GLsizei stride, GLpointer offset) {
|
||||||
}
|
}
|
||||||
static void APIENTRY gl10_vertexPointer(GLint size, GLenum type, GLsizei stride, GLpointer offset) {
|
static void APIENTRY gl10_vertexPointer(GLint size, GLenum type, GLsizei stride, GLpointer offset) {
|
||||||
gl10_vb = cur_vb->data + offset;
|
gl10_vb = cur_vb->data + (cc_uintptr)offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
11
src/Logger.c
11
src/Logger.c
@ -280,6 +280,12 @@ static void DumpFrame(cc_string* trace, void* addr) {
|
|||||||
cc_uintptr addr_ = (cc_uintptr)addr;
|
cc_uintptr addr_ = (cc_uintptr)addr;
|
||||||
String_Format1(trace, "%x", &addr_);
|
String_Format1(trace, "%x", &addr_);
|
||||||
}
|
}
|
||||||
|
#elif defined CC_BUILD_HPUX
|
||||||
|
/* HP-UX doesn't expose a nice interface for dladdr */
|
||||||
|
static void DumpFrame(cc_string* trace, void* addr) {
|
||||||
|
cc_uintptr addr_ = (cc_uintptr)addr;
|
||||||
|
String_Format1(trace, "%x", &addr_);
|
||||||
|
}
|
||||||
#elif defined CC_BUILD_POSIX && !defined CC_BUILD_OS2
|
#elif defined CC_BUILD_POSIX && !defined CC_BUILD_OS2
|
||||||
/* need to define __USE_GNU for dladdr */
|
/* need to define __USE_GNU for dladdr */
|
||||||
#ifndef __USE_GNU
|
#ifndef __USE_GNU
|
||||||
@ -455,6 +461,11 @@ void Logger_Backtrace(cc_string* trace, void* ctx) {
|
|||||||
String_AppendConst(trace, "-- backtrace unimplemented --");
|
String_AppendConst(trace, "-- backtrace unimplemented --");
|
||||||
/* There is no dladdr on Symbian */
|
/* There is no dladdr on Symbian */
|
||||||
}
|
}
|
||||||
|
#elif defined CC_BUILD_HPUX
|
||||||
|
/* HP-UX doesn't have unwind support */
|
||||||
|
void Logger_Backtrace(cc_string* trace, void* ctx) {
|
||||||
|
String_AppendConst(trace, "-- backtrace unimplemented --");
|
||||||
|
}
|
||||||
#elif defined CC_BUILD_POSIX
|
#elif defined CC_BUILD_POSIX
|
||||||
/* musl etc - rely on unwind from GCC instead */
|
/* musl etc - rely on unwind from GCC instead */
|
||||||
#define CC_BACKTRACE_UNWIND
|
#define CC_BACKTRACE_UNWIND
|
||||||
|
@ -800,9 +800,16 @@ cc_result Socket_Create(cc_socket* s, cc_sockaddr* addr, cc_bool nonblocking) {
|
|||||||
if (*s == -1) return errno;
|
if (*s == -1) return errno;
|
||||||
|
|
||||||
if (nonblocking) {
|
if (nonblocking) {
|
||||||
|
#ifdef CC_BUILD_HPUX
|
||||||
|
int flags = fcntl(*s, F_GETFL, 0);
|
||||||
|
if (flags == -1) return errno;
|
||||||
|
int err = fcntl(*s, F_SETFL, flags | O_NONBLOCK);
|
||||||
|
if (err == -1) return errno;
|
||||||
|
#else
|
||||||
int blocking_raw = -1; /* non-blocking mode */
|
int blocking_raw = -1; /* non-blocking mode */
|
||||||
int err = ioctl(*s, FIONBIO, &blocking_raw);
|
int err = ioctl(*s, FIONBIO, &blocking_raw);
|
||||||
if (err == -1) return errno;
|
if (err == -1) return errno;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -80,6 +80,12 @@ static void ConvertRGBA(void* dst, const void* src, int numPixels) {
|
|||||||
d[1] = s[2];
|
d[1] = s[2];
|
||||||
d[2] = s[3];
|
d[2] = s[3];
|
||||||
d[3] = s[0];
|
d[3] = s[0];
|
||||||
|
#elif defined CC_BUILD_HPUX
|
||||||
|
/* HP-UX specific color channel mapping - try IRIX style G,B,A,R */
|
||||||
|
d[0] = s[1]; /* R = G */
|
||||||
|
d[1] = s[2]; /* G = B */
|
||||||
|
d[2] = s[3]; /* B = A */
|
||||||
|
d[3] = s[0]; /* A = R */
|
||||||
#else
|
#else
|
||||||
d[0] = s[2];
|
d[0] = s[2];
|
||||||
d[1] = s[1];
|
d[1] = s[1];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user