View Full Version: MenuetOS (KolibriOS) GFX kernel

meos32 >>Kernel >>MenuetOS (KolibriOS) GFX kernel


mike.dld- 08-14-2006
MenuetOS (KolibriOS) GFX kernel
I have uploaded gfx_kernel to SVN today: svn://kolibrios.org/kernel/branches/gfx_kernel Problems at the moment:<*>free-form windows aren't supported; want to get off the current functions, and set region with set of rectangles <*>cursor trails (looks like it shows or hides in wrong place); noticeable while moving windows <*> free lines aren't drawn (only horizontal and vertical) <*> vmode, based on VESA capabilities, is placed in driver, not in kernel; should be in kernel, vesa20.inc etc should be removed, driver should be left to redefine functions with specific ones (e.g. functions using gfx cards hardware capabilities) <*> can't press buttons if window has negative X or Y coordinates (simple fix can be done) <*> cursor is being drawn with putpixel, putimage should be used or sth else to reduce its flickering <*> some problems with (calculate/set)screen; have to determine where their calls are necessary. plus, form clipping rectangles only for specified area (formed for all screen right now); calculatescreen equals setscreen, which is another cause to think about their usage in kernel <*>some bugs in boot(code/vesa).inc - need to redraw background behind modes table, add scroll indicator, draw only necessary amount of modes (draw 2, if there're 2 modes, even while table is of height 4), save selected mode, set cursor position to available mode initially, add 2 standard modes to the list while forming it (320x200x8 and 640x480x4) <*>image should contain arrow.cur file - 32-bit cursor of size 32х32 <*><... something else I forgot ...>Any of you may help to develop and optimize it (there's much work in both areas). Work should be synchronized of course. Driver itself is in <...>/gfx_kernel/vmode folder.

mike.dld- 08-15-2006

Few notes to add. To get this thing working you need:<*>download and install svn client from http://subversion.tigris.org <*>go to folder where you plan to store SVN trunks and execute `svn checkout svn://kolibrios.org/kernel/branches/gfx_kernel`. this will create folder named `gfx_kernel` with KolibriOS source code within <*>get into `gfx_kernel` folder and run either `make` (for *nix users) or `build_en.bat` (for Windows users). this will create `kernel.mnt` file <*>get into `gfx_kernel/vmode` folder and also run either `make` or `fasm vmode.asm vmode.mdr` (sorry, no .bat file available). this will create `vmode.mdr` fileNow that you have `kernel.mnt` & `vmode.mdr`, you also need any 32-bit cursor of size 32x32 (in .cur format), named `arrow.cur`. Those 3 files you need to place into image, and now you're ready to try it out.

Macgub- 08-18-2006

Free form window kernel function allow to do really unique look of app. The map window is not a problem. You can easily generate map and save the memory. Its my opinion.

mike.dld- 08-18-2006

Macgub Thanks for the opinion. THe problem with window maps is that they take more space than rectangles coordinates. E.g., if you have screen resolution of 1600x1200 size (which is possible with gfx_kernel), you'll need to generate a map of size 1.83 Mbytes, while in kernel you'll need same memory size for screen map, and you can't generate such map quickly. Also, I didn't see any app using free-form functions to date. And also, free-form functions will still be available, just functioning in different manner. Comparing to example above, to set window region for windows with rounded top corners you'll need no more than 5-6 rectangles, which is 80-96 bytes. Clipping approach is much more convinient since doesn't rely on screen resolution, but (generally) on windows number visible on screen.

Forumer™ is Voted #1 Free Forum Hosting provider
Build your own community today with the largest message board hosting company.