mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-12 17:17:09 -04:00
Start making OpenGL 1.1 fallback 64 bit compatible
This commit is contained in:
parent
aa793891cc
commit
771da4cd6e
@ -200,16 +200,19 @@ static void LoadCoreFuncs(void) {
|
||||
*-------------------------------------------------------Index buffers-----------------------------------------------------*
|
||||
*#########################################################################################################################*/
|
||||
#ifndef CC_BUILD_GL11
|
||||
static GLuint GL_GenAndBind(GLenum target) {
|
||||
static GfxResourceID GL_GenBuffer(void) {
|
||||
GLuint id;
|
||||
_glGenBuffers(1, &id);
|
||||
_glBindBuffer(target, id);
|
||||
return id;
|
||||
}
|
||||
|
||||
static GfxResourceID (*_genBuffer)(void) = GL_GenBuffer;
|
||||
|
||||
GfxResourceID Gfx_CreateIb(void* indices, int indicesCount) {
|
||||
GLuint id = GL_GenAndBind(GL_ELEMENT_ARRAY_BUFFER);
|
||||
cc_uint32 size = indicesCount * 2;
|
||||
GfxResourceID id = _genBuffer();
|
||||
cc_uint32 size = indicesCount * 2;
|
||||
|
||||
_glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id);
|
||||
_glBufferData(GL_ELEMENT_ARRAY_BUFFER, size, indices, GL_STATIC_DRAW);
|
||||
return id;
|
||||
}
|
||||
@ -234,7 +237,9 @@ void Gfx_DeleteIb(GfxResourceID* ib) { }
|
||||
*#########################################################################################################################*/
|
||||
#ifndef CC_BUILD_GL11
|
||||
GfxResourceID Gfx_CreateVb(VertexFormat fmt, int count) {
|
||||
return GL_GenAndBind(GL_ARRAY_BUFFER);
|
||||
GfxResourceID id = _genBuffer();
|
||||
_glBindBuffer(GL_ARRAY_BUFFER, id);
|
||||
return id;
|
||||
}
|
||||
|
||||
void Gfx_BindVb(GfxResourceID vb) { _glBindBuffer(GL_ARRAY_BUFFER, (GLuint)vb); }
|
||||
@ -306,12 +311,14 @@ GfxResourceID Gfx_CreateVb2(void* vertices, VertexFormat fmt, int count) {
|
||||
*#########################################################################################################################*/
|
||||
#ifndef CC_BUILD_GL11
|
||||
GfxResourceID Gfx_CreateDynamicVb(VertexFormat fmt, int maxVertices) {
|
||||
GLuint id;
|
||||
GfxResourceID id;
|
||||
cc_uint32 size;
|
||||
if (Gfx.LostContext) return 0;
|
||||
|
||||
id = GL_GenAndBind(GL_ARRAY_BUFFER);
|
||||
id = _genBuffer();
|
||||
size = maxVertices * strideSizes[fmt];
|
||||
|
||||
_glBindBuffer(GL_ARRAY_BUFFER, id);
|
||||
_glBufferData(GL_ARRAY_BUFFER, size, NULL, GL_DYNAMIC_DRAW);
|
||||
return id;
|
||||
}
|
||||
@ -509,10 +516,8 @@ static void APIENTRY fake_deleteBuffers(GLsizei n, const GLuint *buffers) {
|
||||
Mem_Free((void*)buffers[0]);
|
||||
}
|
||||
|
||||
static void APIENTRY fake_genBuffers(GLsizei n, GLuint *buffers) {
|
||||
fake_buffer* buffer = (fake_buffer*)Mem_TryAlloc(1, sizeof(fake_buffer));
|
||||
buffer->data = NULL;
|
||||
buffers[0] = (GLuint)buffer;
|
||||
static GfxResourceID GenFakeBuffer(void) {
|
||||
return (GfxResourceID)Mem_TryAllocCleared(1, sizeof(fake_buffer));
|
||||
}
|
||||
|
||||
static void APIENTRY fake_bufferData(GLenum target, cc_uintptr size, const GLvoid* data, GLenum usage) {
|
||||
@ -549,7 +554,7 @@ static void OpenGL11Fallback(void) {
|
||||
customMipmapsLevels = false;
|
||||
|
||||
_glBindBuffer = fake_bindBuffer; _glDeleteBuffers = fake_deleteBuffers;
|
||||
_glGenBuffers = fake_genBuffers; _glBufferData = fake_bufferData;
|
||||
_genBuffer = GenFakeBuffer; _glBufferData = fake_bufferData;
|
||||
_glBufferSubData = fake_bufferSubData;
|
||||
|
||||
_glDrawElements = fake_drawElements; _glColorPointer = fake_colorPointer;
|
||||
|
@ -300,7 +300,7 @@ void Window_DrawFramebuffer(Rect2D r) {
|
||||
rect.origin.y = WindowInfo.Height - r.Y - r.Height;
|
||||
rect.size.width = r.Width;
|
||||
rect.size.height = r.Height;
|
||||
view_handle.layer.contents = CFBridgingRelease(CGBitmapContextCreateImage(win_ctx));
|
||||
win_handle.layer.contents = CFBridgingRelease(CGBitmapContextCreateImage(win_ctx));
|
||||
// TODO always redraws entire launcher which is quite terrible performance wise
|
||||
//[win_handle setNeedsDisplayInRect:rect];
|
||||
}
|
||||
@ -621,8 +621,6 @@ static NSString* cellID = @"CC_Cell";
|
||||
btn->OnClick(btn);
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
- (void)handleTextChanged:(id)sender {
|
||||
struct LWidget* w = FindWidgetForView(sender);
|
||||
if (w == NULL) return;
|
||||
@ -669,7 +667,6 @@ void LBackend_Init(void) {
|
||||
/*########################################################################################################################*
|
||||
*------------------------------------------------------ButtonWidget-------------------------------------------------------*
|
||||
*#########################################################################################################################*/
|
||||
>>>>>>> b2e96605 (ios: WIP on native table widget)
|
||||
void LBackend_ButtonInit(struct LButton* w, int width, int height) {
|
||||
UIButton* btn = [[UIButton alloc] init];
|
||||
btn.frame = CGRectMake(0, 0, width, height);
|
||||
@ -720,22 +717,6 @@ void LBackend_CheckboxDraw(struct LCheckbox* w) {
|
||||
/*########################################################################################################################*
|
||||
*------------------------------------------------------InputWidget--------------------------------------------------------*
|
||||
*#########################################################################################################################*/
|
||||
<<<<<<< HEAD
|
||||
static void LBackend_HandleInput(id ipt_obj) {
|
||||
struct LWidget* w = FindWidgetForView(ipt_obj);
|
||||
if (w == NULL) return;
|
||||
|
||||
UITextField* src = (UITextField*)ipt_obj;
|
||||
const char* str = [[src text] UTF8String];
|
||||
|
||||
struct LInput* ipt = (struct LInput*)w;
|
||||
ipt->text.length = 0;
|
||||
String_AppendUtf8(&ipt->text, str, String_Length(str));
|
||||
if (ipt->TextChanged) ipt->TextChanged(ipt);
|
||||
}
|
||||
|
||||
=======
|
||||
>>>>>>> b2e96605 (ios: WIP on native table widget)
|
||||
void LBackend_InputInit(struct LInput* w, int width) {
|
||||
UITextField* fld = [[UITextField alloc] init];
|
||||
fld.frame = CGRectMake(0, 0, width, 30);
|
||||
|
Loading…
x
Reference in New Issue
Block a user