The MASM Forum Archive 2004 to 2012

Miscellaneous Forums => Miscellaneous Projects => Windows Projects => Topic started by: stanhebben on May 31, 2006, 01:45:09 PM

Title: [WinChaos] Planning for WinChaos
Post by: stanhebben on May 31, 2006, 01:45:09 PM
Mnemonic already introduced the WinChaos fractal generator project.

In this thread we would like to plan our project. That means that you can come up with ideas, or discuss each other's ideas. These may be features, technical ideas, ... anything that can help us with the project.

Major questions are:
- how does the main program interface with the plugins?
- what will the plugins have to do? (only rendering, or more? should they apply the gradient? ...)

Anything goes, but make sure it is on-topic. Posts that don't have anything to do with planning should be posted in the other thread.
Title: Re: [WinChaos] Planning for WinChaos
Post by: mnemonic on May 31, 2006, 02:12:08 PM
What certainly leaps to mind is a general modular approach for the solution. We should break down each and every thing into small pieces.

What we will generally need is a display module which is responsible for the drawing area information (width, height and colour depth).
Then a palette module would be nice, where users can adjust the colours being used.

The next thing to consider is that there is a wide variety of fractal types. That leads to the fact that there has to be a means to configure each type of fractal rendering process individually.

The rendering algorithms themself should be organized in plugin DLLs so that each algorithm may be loaded and unloaded individually.

How should the display module operate together with a certain algorithm?

What I'm not certain about is for example whether a mandelbrot drawing algorithm implemented with FPU operations has to be configured in a different way than a mandelbrot drawing algorithm implemented with MMX or SSE operations.
Would it be sufficient to provide one configuration means for all mandelbrot rendering algos?

Another question is: What is the minimum Processor needed to run a Windows 32bit operating system?

We would need a facility that is able to find out which features may be used on a certain machine and according to that a list with the possible render plugins should be created.

Thats my brain-storming stuff for now.
Come on, beat me to death now. ;)
Title: Re: [WinChaos] Planning for WinChaos
Post by: stanhebben on June 08, 2006, 10:56:09 AM
I thought of the following interface for renderer plugins:

- the plugin is a DLL with a single exported function: CreateRenderer
- that function creates a com interface. see the explanation. The interface contains only a few functions
- to obtain it's parameters, CreateRenderer gets a window handler to a window on which components can be placed.
   The handling of these is completely up to the plugin.

DLL function
-------------------
lpIFractalRenderer CreateRenderer(HWND settingspanel, int width, int height, int gradientsize, void* gradient)
   settingspanel: a window on which the renderer can place input components to obtain it's parameters
   width, height: initial size of the rendered image (can be used to pre-allocate memory, for example
   gradient: initial gradient of the image, consists of palettesize dwords
   
   return value: an IFractalRenderer

COM interface
-------------------
IFractalRenderer::QueryInterface does not have to do anything
IFractalRenderer::AddRef and ::Release works as usual

bool IFractalRenderer::SetSize(int width, int height)
bool IFractalRenderer::SetGradient(int gradientsize, void* gradient)
   These are self-explanatory.

void* IFractalRenderer::Render()
   Renders the image, and returns image data. Can return NULL. (for example, when not all parameters are filled in)
Title: Re: [WinChaos] Planning for WinChaos
Post by: daydreamer on June 09, 2006, 05:54:10 AM
I have long had the idea of take rosler and othe strange attractors and make a beautiful hardware accelerated particledemo, that can be viewed from many directions and zoom out and in
but never got time
how does that fit in?
even render output to a texture and render it with hardware with all kinds of filters applied could improve any fractalviewing
Title: Re: [WinChaos] Planning for WinChaos
Post by: stanhebben on June 09, 2006, 08:41:18 AM
I don't know rosler, so could you explain?

Rendering to a texture looks good. Should be put on the list.

Which kind of filters do you have in mind?

I also rendered the mandelbrot fractal by using hardware acceleration. Major problem is that the number of iterations seems to be limited to 255.
Title: Re: [WinChaos] Planning for WinChaos
Post by: daydreamer on June 13, 2006, 06:11:40 PM
Quote from: Stan Hebben on June 09, 2006, 08:41:18 AM
I don't know rosler, so could you explain?

Rendering to a texture looks good. Should be put on the list.

Which kind of filters do you have in mind?

I also rendered the mandelbrot fractal by using hardware acceleration. Major problem is that the number of iterations seems to be limited to 255.
download rosler3d from Ron's site + look at all examples in his old asm dosbook with strange attractors+fractals
Title: Re: [WinChaos] Planning for WinChaos
Post by: stanhebben on June 14, 2006, 09:42:12 PM
Could you post a link to that site?
Title: Re: [WinChaos] Planning for WinChaos
Post by: daydreamer on June 17, 2006, 01:33:08 PM
Quote from: Stan Hebben on June 14, 2006, 09:42:12 PM
Could you post a link to that site?
found link in orphanage
http://www.ronthomas.plus.com/