sDraw : software 2D rasterizer for complex GUI

Started by u, January 14, 2007, 03:41:05 AM

Previous topic - Next topic

u

Finally posting it on this forum, this library is a "replacement" of GDI.
With it, there's no need for DCs, HBITMAPs, brushes and complex acrobatics.
Also, sDraw supports images with alpha-channel, alpha-blending, additive-blending, and ROPs for drawing.
You can also draw directly to the back-buffer memory.

Please use a smaller graphic in your signature.

six_L

regards

ramguru

But, isn't this like declaring: minimum system requirements - ATI RADEON 9500 with 128Mb of memory. This library should definitely demand for better video card than GDI the Old Fashioned.

hutch--

Ultrano,

This stuff looks great. I confess to being an illiterate in modern graphics but the demos seem to run fine on my 2 year old Winfast 128 meg graphics card.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

u

Quote from: ramguru on January 14, 2007, 09:28:52 AM
But, isn't this like declaring: minimum system requirements - ATI RADEON 9500 with 128Mb of memory.
Nothing of the sorts :green2. How did you reach this conclusion?!. As the title reads, "sDraw : software 2D rasterizer". Meaning that it does all drawing in software. Basically, sDraw draws on the memory of a backbuffer DIB, which is then BitBlt-ed to the DC of the window. Thus, sDraw's minimum system requirements are win95, 4MB free RAM (or as much as your back-buffer+sprites take), and a 333MHz cpu.

Even my xDraw package doesn't require a R9500+128MB, though it does all that sDraw has in Direct3D9, with even more blending and stretching options. 
Please use a smaller graphic in your signature.

ramguru

Well, statements in chm file is a little scary: "On nVidia videocards, the final BitBlt ***** up and decreases performance ", "...instead of FX5900's 45% cpu load"  :wink.
Quote from: Ultrano on January 14, 2007, 09:59:06 AM
Quote from: ramguru on January 14, 2007, 09:28:52 AM
But, isn't this like declaring: minimum system requirements - ATI RADEON 9500 with 128Mb of memory.
sDraw's minimum system requirements are win95, 4MB free RAM (or as much as your back-buffer+sprites take), and a 333MHz cpu.
Are you sure? Alpha channels are only available from win2000 & up. I think this library is more suited to game design not to Gui.
However, what I did miss in lats post, I will say in this - "GOOD WORK"

u

I had created a DirectDraw-based game-lib years ago, called "Ilix", integrating my experience from my commercial PDA games. But only its feature to draw GUI  turned out useful for me, so I trimmed-out some fat, added some features, remade its workflow, and named it iDraw. But DirectDraw's latency on drawing complex (and nice) graphics turned into a bottleneck in some types of user-interfaces, so I made this sDraw lib. Thus, sDraw is just a cousin of a game-lib, and for two "generations" has been specializing for GUI :) . I already received a cool example of its use in a GUI app today :)
Don't worry about alpha-channels being available only in win2k and up... alpha is internally-handled. I don't know anything about Layered windows anyway  :bg . Look at the attached snippet from the library, to see for yourself.

The statement about "On nVidia videocards..." - it's just the result of a benchmark of one test, where an app was forced to redraw at 50fps on a slower cpus with a FX5X00. A good point against using sDraw for games :) . While all PCs with ATi cards returned only up to 0.7% cpu.  Now I am stuck with an awful mobo-integrated NV 6100, and the same benchmark takes 0-7% cpu.
Please use a smaller graphic in your signature.

ramguru

It would be nice to have something like ExtTextOut, that is able specify RECT for text drawing, and change background color of that RECT...

u

... which you can already do by using SDBackDC...  ::)
Please use a smaller graphic in your signature.

ramguru

Consider that each character should be drawn with different background and text color (that's how selection and syntax highlighting are usually made), this is simply done with ExtTextOut, but is that so simple using sDraw lib ? I assume I cannot be very confident making alike declarations before I've actually tried your library in some project, but I will sooner or later  :wink

Jupiter

hi Ultrano
I'm impressed, your library is really great, thanks for sharing .lib
good work.

performance:
on my notebook's ATI Radeon X1400 all work fine with 0% CPU eating. Custom Ctl eats 0.75% max and only while hovering button.
EnJoy!

MichaelW

All of the examples seem to run well on my P3-500 with a 7+ year old Matrox G200, with very low CPU utilization.
eschew obfuscation