POV-Ray : Newsgroups : povray.programming : Proposal for 4.0 core control : Re: Proposal for 4.0 core control Server Time
28 Jul 2024 12:24:39 EDT (-0400)
  Re: Proposal for 4.0 core control  
From: Thorsten Froehlich
Date: 15 Oct 2002 14:11:24
Message: <3dac5a4c@news.povray.org>
Hello,

You know, I have to explain something.  My post was just a test.  In fact
what it describes already exists in POV-Ray 3.5 and is known under the name
POVMS and the document itself is rather old.  I just made this post in order
to get an idea what would happen should 4.0 design be discussed publicly at
all.  What I said has absolutely *no* relation to any team plans regarding
4.0.

I have to admit the results were rather surprising.  I had expected more
controversy or someone noticing immediately that it already exists.  What
happened is that there was little controversy (even when I started to make
really ridiculous suggestions such as using Mozilla as GUI, but maybe nobody
took that serious?) and nobody noticed that something like this already
exists.  Even those who have played with the source code very long.  And the
classes I posted later are almost an exact copy from povmscpp.h with all
reasonable or working features (such a arguments passed by reference)
removed.

In summary, I am not sure what to make out of the "result" I got with my
little experiment...

    Thorsten



The original document (actually only tiny little subset of its introduction)
as I had posted it back somewhere in the private POV-Team CompuServe GO
POVRAY forum back in 1999/2000:


This documents is to explain most issues regarding a proposal for new,
additional hooks to significantly better abstract the POV-Ray 3.5 core code
from outside, platform specific implementation details. The goal is a much
more powerful connection with Graphical User Interfaces. These hooks offer
an optional way to specify the render options without a command line and
control rendering as well as replacements and additions for the text stream
based input and output.

Up to version 3.1 POV-Ray only allowed text output and the main control
worked through the command line. Since version 3.0 two more powerful GUI
platforms - Windows and Mac OS - provide text editors but little abstraction
of the command line. However, both platforms surely present the main part of
the POV-Ray users today and a command line environment is no longer state of
the art. Especially Integrated Development Environment applications outline
a reasonable way to move traditionally command line driven programs like
compilers into the GUI age. However, providing IDE like features without
extensive support from the backend, the POV-Ray platform independent core
code, is very hard and resulted in errors and a (today) rather primitive
user interface designs. These new hooks will ease the creation of GUIs on
other platforms as well.

The hooks are designed to be very flexible and extensible. They will allow
future changes in the core code without breaking platform specific code or
forcing changes in it. It can simply ignore the additional information and
immediate changes in platform specific code of all platforms if some hooks
are changed can be avoided in these areas. Especially for a future C++
version of POV-Ray these hooks will be helpful and reduce or eliminate
changes to this crucial part of every platform specific user interface for
POV-Ray. Currently a set of C++ wrapper classes for the POVMS is
available.

In addition, the information about these hooks is very limited and some
documentation would be helpful for both sides, the GUI as well as the core
code developers, in order to prevent breaking old code by new changes. This
document contains the details of the POVMS functions, changes required in
each platform specific code and composition of the messages. It could be
used as base for some kind of introduction for those willing to port POV-Ray
to unsupported platforms. With the current and the constantly increasing
complexity of the hooks and other interface functions this has become a more
and more difficult task.

The POV-Ray Message System (POVMS) is a solution to the command line and
text input and output limitations for GUI systems. It offers a very easy to
extend control mechanism for POV-Ray. Existing command line driven POV-Ray
versions will only need little adjustment while the GUI platforms may need
(more) extensive changes in order to make use of the newly available
features and options. However, nearly full backward compatibility is
provided so GUI platforms do not need to be adapted immediately. A macro to
compile POV-Ray without POVMS is provided for platforms that do not use the
POVMS. This way no additional code is generated, and no time is wasted
creating messages that are not used.



____________________________________________________
Thorsten Froehlich, Duisburg, Germany
e-mail: tho### [at] trfde

Visit POV-Ray on the web: http://mac.povray.org


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.