From 6f00be304598cbaac2ed145f4d2079574717e984 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Tue, 6 Aug 2013 08:21:34 +0800 Subject: [PATCH] Usermode/AxWin3 - Duplicate renderer detection, debug changes --- Usermode/Applications/axwin3_src/WM/ipc.c | 4 ++-- .../axwin3_src/WM/renderers/framebuffer.c | 1 + Usermode/Applications/axwin3_src/WM/wm.c | 11 ++++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Usermode/Applications/axwin3_src/WM/ipc.c b/Usermode/Applications/axwin3_src/WM/ipc.c index 41949a80..7155c115 100644 --- a/Usermode/Applications/axwin3_src/WM/ipc.c +++ b/Usermode/Applications/axwin3_src/WM/ipc.c @@ -492,7 +492,7 @@ void IPC_Handle(tIPC_Client *Client, size_t MsgLen, tAxWin_IPCMessage *Msg) _SysDebug("WARNING: Message %i has no handler in %s", Msg->ID, renderer->Name); return ; } - _SysDebug("IPC_Handle: Call %s-%i", renderer->Name, Msg->ID); + _SysDebug("IPC_Handle: Call %s-%i %ib", renderer->Name, Msg->ID, Msg->Size); rv = renderer->IPCHandlers[Msg->ID](win, Msg->Size, Msg->Data); if( rv ) _SysDebug("IPC_Handle: rv != 0 (%i)", rv); @@ -511,7 +511,7 @@ void IPC_Handle(tIPC_Client *Client, size_t MsgLen, tAxWin_IPCMessage *Msg) return ; } - _SysDebug("IPC_Handle: Call WM-%i", Msg->ID); + _SysDebug("IPC_Handle: Call WM-%i %ib", Msg->ID, Msg->Size); rv = gIPC_MessageHandlers[Msg->ID](Client, Msg); if( rv ) _SysDebug("IPC_Handle: rv != 0 (%i)", rv); diff --git a/Usermode/Applications/axwin3_src/WM/renderers/framebuffer.c b/Usermode/Applications/axwin3_src/WM/renderers/framebuffer.c index 68a3f8cc..90f00332 100644 --- a/Usermode/Applications/axwin3_src/WM/renderers/framebuffer.c +++ b/Usermode/Applications/axwin3_src/WM/renderers/framebuffer.c @@ -41,6 +41,7 @@ tWMRenderer gRenderer_Framebuffer = { .IPCHandlers = { [IPC_FB_COMMIT] = _Handle_Commit, [IPC_FB_NEWBUF] = _Handle_CreateBuf, + //[IPC_FB_SUBBUF] = _Handle_SubBuf, } }; diff --git a/Usermode/Applications/axwin3_src/WM/wm.c b/Usermode/Applications/axwin3_src/WM/wm.c index 5f204af9..e2007000 100644 --- a/Usermode/Applications/axwin3_src/WM/wm.c +++ b/Usermode/Applications/axwin3_src/WM/wm.c @@ -60,7 +60,16 @@ void WM_Initialise(void) void WM_RegisterRenderer(tWMRenderer *Renderer) { - // TODO: Catch out duplicates + // Catch out duplicates + for(tWMRenderer *r = gpWM_Renderers; r; r = r->Next ) { + if( r == Renderer ) { + return ; + } + if( strcmp(r->Name, Renderer->Name) == 0 ) { + return ; + } + } + Renderer->Next = gpWM_Renderers; gpWM_Renderers = Renderer; } -- 2.20.1