extern "C" { #include <stdio.h> } #include "vWindow.h" vWindow::vWindow(void) { realWindow = new ogSurface(); titleFont = new ogBitFont(); return; } // vWindow::vWindow bool vWindow::vCreate(void) { if (realWindow->ogCreate(800,600,OG_PIXFMT_24BPP) == false) { return false; } if (ogAlias(*realWindow, 0, 0, realWindow->ogGetMaxX(), realWindow->ogGetMaxY()) == false) { return false; } return true; } // vWindow::vCreate extern "C" { void vSDECmd(uint32_t command, uint32_t rwAddr); asm( ".globl vSDECmd\n" "vSDECmd:\n" "movl $40,%eax\n" "int $0x81\n" "ret\n" ); } void vWindow::vSDECommand(uint32_t command) { uint32_t rwAddr = (uint32_t)realWindow; /* asm( "pushl %%ebx\n" "pushl %%ecx\n" "int %0\n" "add $0x8, %%esp\n" : : "i" (0x81),"a" (40),"b" (command),"c" (rwAddr) ); */ vSDECmd(command, rwAddr); return; } // vWindow::vSDECommand vWindow::~vWindow() { delete realWindow; delete titleFont; return; } // vWindow::~vWindow /* ogSurface -> vWidget -> vWindow | \------> vButton | | -- ogDisplay_UbixOS -> SDE */