Oh, well it tried it and it worked. The only downside though is that both windows must be manually positioned and set to toplevel, otherwise other windows will appear 'inside' of the drawing if switch between them. Of course, I think the latter problem can be fixed just by waiting for active event and making sure both windows go active and inactive at the same time.
ANYWAY, I figured out paging but I need to go learns meh sum GDT cuz I just found out I didn't know half as much about it as I thought I did, and it is truly making my brain hurt.
AND COOL RANCH DORITO BEANS I created a GUI framework for my PSP that is a sort of extended version of the DCS GUI stack. In my framework, there are 3 types of objects: stacks, containers, and components. All objects have a component header that tells its type and state flags, and all containers or stacks have an additional container header that has an x, y, width, and height for a rendering region. Unlike the DCS stack though, items are stored in list of pointers and each container has its own stack. Here's an example code of how its used:
Code:
As you can see, windows can be used as arguments for the stack functions.
NO. THIS IS NOT A CONCEPT. This is something I have already done for fun and practice. Currently supported are windows (with and without captions and window buttons), buttons, images, text, rectangles (with and without borders), and drawing a cursor.
For stack handling functions there are gui_openStack(), gui_closeStack(), gui_renderStack(), gui_pushStack(), gui_popStack(), gui_insertStack(), and gui_removeStack(). Most are pretty much self explanatory if you know how the DCS stack works, but the last 2 allow you to insert and remove a specific item from the stack.
This doesn't really have anything to do the my os, but I figured it was good practice for when I create my OS's framework.
ANYWAY, I figured out paging but I need to go learns meh sum GDT cuz I just found out I didn't know half as much about it as I thought I did, and it is truly making my brain hurt.
AND COOL RANCH DORITO BEANS I created a GUI framework for my PSP that is a sort of extended version of the DCS GUI stack. In my framework, there are 3 types of objects: stacks, containers, and components. All objects have a component header that tells its type and state flags, and all containers or stacks have an additional container header that has an x, y, width, and height for a rendering region. Unlike the DCS stack though, items are stored in list of pointers and each container has its own stack. Here's an example code of how its used:
Code:
GUI_STACK stack = gui_openStack()
GUI_WINDOW win1 = gui_newWindow("Example", 10, 10, 250, 150)
GUI_WINDOW win2 = gui_newWindow("Child Window", 35, 35, 175, 100)
GUI_WINBTNS wbtns = gui_newWinBtns(GUI_WB_MIN | GUI_WB_MAX | GUI_WB_CLOSE, NULL, NULL, NULL)
GUI_TEXT txt = gui_newText("Hello World", 5, 5)
gui_pushStack(&stack, &win1)
gui_pushStack(&win1, &wbtns)
gui_pushStack(&win1, &win2)
gui_pushStack(&win2, &txt)
gui_renderStack(&stack)
As you can see, windows can be used as arguments for the stack functions.
NO. THIS IS NOT A CONCEPT. This is something I have already done for fun and practice. Currently supported are windows (with and without captions and window buttons), buttons, images, text, rectangles (with and without borders), and drawing a cursor.
For stack handling functions there are gui_openStack(), gui_closeStack(), gui_renderStack(), gui_pushStack(), gui_popStack(), gui_insertStack(), and gui_removeStack(). Most are pretty much self explanatory if you know how the DCS stack works, but the last 2 allow you to insert and remove a specific item from the stack.
This doesn't really have anything to do the my os, but I figured it was good practice for when I create my OS's framework.