ASFLAGS += -D ARCHDIR=$(ARCHDIR) -D __ASSEMBLER__=1
CPPFLAGS := -I$(ACESSDIR)/Usermode/include/ -DARCHDIR=$(ARCHDIR) -DARCHDIR_is_$(ARCHDIR)=1
CFLAGS := -g -Wall -fPIC -fno-builtin -fno-stack-protector $(CPPFLAGS)
-LDFLAGS := -g -nostdlib -shared -I/Acess/Libs/ld-acess.so -e SoMain -x -L$(OUTPUTDIR)Libs/ -Wl,--no-undefined
+LDFLAGS := -g -nostdlib -shared -I/Acess/Libs/ld-acess.so -lld-acess -e SoMain -x -L$(OUTPUTDIR)Libs/ --no-undefined
typedef struct sAxWin_IPCMessage tAxWin_IPCMessage;
typedef struct sIPCMsg_Return tIPCMsg_Return;
+typedef struct sIPCMsg_CreateWin sIPCMsg_CreateWin;
/**
* \name Flags for IPC Messages
*/
//! Request a return value
#define IPCMSG_FLAG_RETURN 0x01
+/**
+ * \}
+ */
struct sAxWin_IPCMessage
{
uint32_t Value;
};
+struct sIPCMsg_CreateWin
+{
+ uint32_t NewWinID;
+ uint32_t Flags;
+ char Renderer[];
+};
+
enum eAxWin_IPCMessageTypes
{
IPCMSG_PING, //!<
IPCMSG_SENDMSG, //!< Send a message to another window
+ IPCMSG_CREATEWIN, //!< Create a window
};
#endif
--- /dev/null
+/*
+ * AxWin3 Interface Library
+ * - By John Hodge (thePowersGang)
+ *
+ * wm.c
+ * - Core window management functions
+ */
+#include <axwin3/axwin.h>
+#include <stdlib.h>
+
+// === CODE ===
+tHWND AxWin3_CreateWindow(tHWND Parent, const char *Renderer, int Flags)
+{
+ int dataSize = sizeof(tIPCMsg_CreateWin) + strlen(Renderer) + 1;
+ tAxWin_IPCMessage *msg;
+ tIPCMsg_CreateWin *create_win;
+
+ msg = alloca( sizeof(tAxWin_IPCMessage) + dataSize );
+ create_win = msg->Data;
+
+ msg->ID = IPCMSG_CREATEWIN;
+ msg->Flags = 0;
+ msg->Window = Parent; // TODO: Validation
+ msg->Size = dataSize;
+
+ create_win->NewWinID = AxWin3_int_AllocateWindowID();
+ create_win->Flags = Flags;
+ strcpy(create_win->Renderer, Renderer);
+
+ return NULL;
+}
+
+void AxWin3_DestroyWindow(tHWND Window)
+{
+}