Initial revision

This commit is contained in:
Hans Lambermont
2002-10-12 11:37:38 +00:00
commit 12315f4d0e
1699 changed files with 444708 additions and 0 deletions

747
intern/img/doc/Doxyfile.win Normal file
View File

@@ -0,0 +1,747 @@
# Doxyfile 1.2.4
# This file describes the settings to be used by doxygen for a project
#
# All text after a hash (#) is considered a comment and will be ignored
# The format is:
# TAG = value [value, ...]
# For lists items can also be appended using:
# TAG += value [value, ...]
# Values that contain spaces should be placed between quotes (" ")
#---------------------------------------------------------------------------
# General configuration options
#---------------------------------------------------------------------------
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
# by quotes) that should identify the project.
#MAART: changed
PROJECT_NAME = ImgLib
# The PROJECT_NUMBER tag can be used to enter a project or revision number.
# This could be handy for archiving the generated documentation or
# if some version control system is used.
PROJECT_NUMBER =
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
# If a relative path is entered, it will be relative to the location
# where doxygen was started. If left blank the current directory will be used.
#MAART: changed
OUTPUT_DIRECTORY = doc
# The OUTPUT_LANGUAGE tag is used to specify the language in which all
# documentation generated by doxygen is written. Doxygen will use this
# information to generate all constant output in the proper language.
# The default language is English, other supported languages are:
# Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese,
# Korean, Hungarian, Norwegian, Spanish, Romanian, Russian, Croatian,
# Polish, Portuguese and Slovene.
OUTPUT_LANGUAGE = English
# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
# documentation are documented, even if no documentation was available.
# Private class members and static file members will be hidden unless
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
EXTRACT_ALL = NO
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
# will be included in the documentation.
EXTRACT_PRIVATE = NO
# If the EXTRACT_STATIC tag is set to YES all static members of a file
# will be included in the documentation.
# MAART: changed
EXTRACT_STATIC = YES
# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
# undocumented members of documented classes, files or namespaces.
# If set to NO (the default) these members will be included in the
# various overviews, but no documentation section is generated.
# This option has no effect if EXTRACT_ALL is enabled.
HIDE_UNDOC_MEMBERS = NO
# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
# undocumented classes that are normally visible in the class hierarchy.
# If set to NO (the default) these class will be included in the various
# overviews. This option has no effect if EXTRACT_ALL is enabled.
HIDE_UNDOC_CLASSES = NO
# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
# include brief member descriptions after the members that are listed in
# the file and class documentation (similar to JavaDoc).
# Set to NO to disable this.
BRIEF_MEMBER_DESC = YES
# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
# the brief description of a member or function before the detailed description.
# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
# brief descriptions will be completely suppressed.
REPEAT_BRIEF = YES
# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
# Doxygen will generate a detailed section even if there is only a brief
# description.
ALWAYS_DETAILED_SEC = NO
# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
# path before files name in the file list and in the header files. If set
# to NO the shortest path that makes the file name unique will be used.
FULL_PATH_NAMES = NO
# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
# can be used to strip a user defined part of the path. Stripping is
# only done if one of the specified strings matches the left-hand part of
# the path. It is allowed to use relative paths in the argument list.
STRIP_FROM_PATH =
# The INTERNAL_DOCS tag determines if documentation
# that is typed after a \internal command is included. If the tag is set
# to NO (the default) then the documentation will be excluded.
# Set it to YES to include the internal documentation.
INTERNAL_DOCS = NO
# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
# generate a class diagram (in Html and LaTeX) for classes with base or
# super classes. Setting the tag to NO turns the diagrams off.
CLASS_DIAGRAMS = YES
# If the SOURCE_BROWSER tag is set to YES then a list of source files will
# be generated. Documented entities will be cross-referenced with these sources.
SOURCE_BROWSER = NO
# Setting the INLINE_SOURCES tag to YES will include the body
# of functions and classes directly in the documentation.
INLINE_SOURCES = NO
# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
# doxygen to hide any special comment blocks from generated source code
# fragments. Normal C and C++ comments will always remain visible.
STRIP_CODE_COMMENTS = YES
# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
# file names in lower case letters. If set to YES upper case letters are also
# allowed. This is useful if you have classes or files whose names only differ
# in case and if your file system supports case sensitive file names. Windows
# users are adviced to set this option to NO.
CASE_SENSE_NAMES = YES
# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
# will show members with their full class and namespace scopes in the
# documentation. If set to YES the scope will be hidden.
HIDE_SCOPE_NAMES = NO
# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
# will generate a verbatim copy of the header file for each class for
# which an include is specified. Set to NO to disable this.
VERBATIM_HEADERS = YES
# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
# will put list of the files that are included by a file in the documentation
# of that file.
SHOW_INCLUDE_FILES = YES
# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
# will interpret the first line (until the first dot) of a JavaDoc-style
# comment as the brief description. If set to NO, the JavaDoc
# comments will behave just like the Qt-style comments (thus requiring an
# explict @brief command for a brief description.
#MAART: changed
JAVADOC_AUTOBRIEF = YES
# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
# member inherits the documentation from any documented member that it
# reimplements.
INHERIT_DOCS = YES
# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
# is inserted in the documentation for inline members.
INLINE_INFO = YES
# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
# will sort the (detailed) documentation of file and class members
# alphabetically by member name. If set to NO the members will appear in
# declaration order.
SORT_MEMBER_DOCS = YES
# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
# tag is set to YES, then doxygen will reuse the documentation of the first
# member in the group (if any) for the other members of the group. By default
# all members of a group must be documented explicitly.
DISTRIBUTE_GROUP_DOC = NO
# The TAB_SIZE tag can be used to set the number of spaces in a tab.
# Doxygen uses this value to replace tabs by spaces in code fragments.
TAB_SIZE = 8
# The ENABLE_SECTIONS tag can be used to enable conditional
# documentation sections, marked by \if sectionname ... \endif.
ENABLED_SECTIONS =
# The GENERATE_TODOLIST tag can be used to enable (YES) or
# disable (NO) the todo list. This list is created by putting \todo
# commands in the documentation.
GENERATE_TODOLIST = YES
# The GENERATE_TESTLIST tag can be used to enable (YES) or
# disable (NO) the test list. This list is created by putting \test
# commands in the documentation.
GENERATE_TESTLIST = YES
# This tag can be used to specify a number of aliases that acts
# as commands in the documentation. An alias has the form "name=value".
# For example adding "sideeffect=\par Side Effects:\n" will allow you to
# put the command \sideeffect (or @sideeffect) in the documentation, which
# will result in a user defined paragraph with heading "Side Effects:".
# You can put \n's in the value part of an alias to insert newlines.
ALIASES =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
# The QUIET tag can be used to turn on/off the messages that are generated
# by doxygen. Possible values are YES and NO. If left blank NO is used.
QUIET = NO
# The WARNINGS tag can be used to turn on/off the warning messages that are
# generated by doxygen. Possible values are YES and NO. If left blank
# NO is used.
WARNINGS = YES
# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
# automatically be disabled.
WARN_IF_UNDOCUMENTED = YES
# The WARN_FORMAT tag determines the format of the warning messages that
# doxygen can produce. The string should contain the $file, $line, and $text
# tags, which will be replaced by the file and line number from which the
# warning originated and the warning text.
WARN_FORMAT = "$file:$line: $text"
# The WARN_LOGFILE tag can be used to specify a file to which warning
# and error messages should be written. If left blank the output is written
# to stderr.
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
# The INPUT tag can be used to specify the files and/or directories that contain
# documented source files. You may enter file names like "myfile.cpp" or
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
INPUT = .
#C:\Documents and Settings\maarten\My Documents\develop\blender\source\blender\img
# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank all files are included.
FILE_PATTERNS =
# The RECURSIVE tag can be used to turn specify whether or not subdirectories
# should be searched for input files as well. Possible values are YES and NO.
# If left blank NO is used.
RECURSIVE = NO
# The EXCLUDE tag can be used to specify files and/or directories that should
# excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag.
EXCLUDE =
# If the value of the INPUT tag contains directories, you can use the
# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
# certain files from those directories.
EXCLUDE_PATTERNS =
# The EXAMPLE_PATH tag can be used to specify one or more files or
# directories that contain example code fragments that are included (see
# the \include command).
EXAMPLE_PATH =
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank all files are included.
EXAMPLE_PATTERNS =
# The IMAGE_PATH tag can be used to specify one or more files or
# directories that contain image that are included in the documentation (see
# the \image command).
IMAGE_PATH =
# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program
# by executing (via popen()) the command <filter> <input-file>, where <filter>
# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
# input file. Doxygen will then use the output that the filter program writes
# to standard output.
INPUT_FILTER =
# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
# INPUT_FILTER) will be used to filter the input files when producing source
# files to browse.
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
# of all compounds will be generated. Enable this if the project
# contains a lot of classes, structs, unions or interfaces.
ALPHABETICAL_INDEX = NO
# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
# in which this list will be split (can be a number in the range [1..20])
COLS_IN_ALPHA_INDEX = 5
# In case all classes in a project start with a common prefix, all
# classes will be put under the same header in the alphabetical index.
# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
# should be ignored while generating the index headers.
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
# generate HTML output.
GENERATE_HTML = YES
# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `html' will be used as the default path.
HTML_OUTPUT = html
# The HTML_HEADER tag can be used to specify a personal HTML header for
# each generated HTML page. If it is left blank doxygen will generate a
# standard header.
HTML_HEADER =
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
# each generated HTML page. If it is left blank doxygen will generate a
# standard footer.
HTML_FOOTER =
# The HTML_STYLESHEET tag can be used to specify a user defined cascading
# style sheet that is used by each HTML page. It can be used to
# fine-tune the look of the HTML output. If the tag is left blank doxygen
# will generate a default style sheet
HTML_STYLESHEET =
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
# files or namespaces will be aligned in HTML using tables. If set to
# NO a bullet list will be used.
HTML_ALIGN_MEMBERS = YES
# If the GENERATE_HTMLHELP tag is set to YES, additional index files
# will be generated that can be used as input for tools like the
# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
# of the generated HTML documentation.
GENERATE_HTMLHELP = NO
# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
# top of each HTML page. The value NO (the default) enables the index and
# the value YES disables it.
DISABLE_INDEX = NO
# This tag can be used to set the number of enum values (range [1..20])
# that doxygen will group on one line in the generated HTML documentation.
ENUM_VALUES_PER_LINE = 4
# If the GENERATE_TREEVIEW tag is set to YES, a side pannel will be
# generated containing a tree-like index structure (just like the one that
# is generated for HTML Help). For this to work a browser that supports
# JavaScript and frames is required (for instance Netscape 4.0+
# or Internet explorer 4.0+).
GENERATE_TREEVIEW = NO
# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
# used to set the initial width (in pixels) of the frame in which the tree
# is shown.
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
# generate Latex output.
#MAART: changed
GENERATE_LATEX = NO
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `latex' will be used as the default path.
LATEX_OUTPUT = latex
# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
# LaTeX documents. This may be useful for small projects and may help to
# save some trees in general.
COMPACT_LATEX = NO
# The PAPER_TYPE tag can be used to set the paper type that is used
# by the printer. Possible values are: a4, a4wide, letter, legal and
# executive. If left blank a4wide will be used.
PAPER_TYPE = a4wide
# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
# packages that should be included in the LaTeX output.
EXTRA_PACKAGES =
# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
# the generated latex document. The header should contain everything until
# the first chapter. If it is left blank doxygen will generate a
# standard header. Notice: only use this tag if you know what you are doing!
LATEX_HEADER =
# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
# is prepared for conversion to pdf (using ps2pdf). The pdf file will
# contain links (just like the HTML output) instead of page references
# This makes the output suitable for online browsing using a pdf viewer.
PDF_HYPERLINKS = NO
# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
# plain latex in the generated Makefile. Set this option to YES to get a
# higher quality PDF documentation.
USE_PDFLATEX = NO
# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
# command to the generated LaTeX files. This will instruct LaTeX to keep
# running if errors occur, instead of asking the user for help.
# This option is also used when generating formulas in HTML.
LATEX_BATCHMODE = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
# The RTF output is optimised for Word 97 and may not look very pretty with
# other RTF readers or editors.
#MAART: changed
GENERATE_RTF = NO
# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `rtf' will be used as the default path.
RTF_OUTPUT = rtf
# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
# RTF documents. This may be useful for small projects and may help to
# save some trees in general.
COMPACT_RTF = NO
# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
# will contain hyperlink fields. The RTF file will
# contain links (just like the HTML output) instead of page references.
# This makes the output suitable for online browsing using a WORD or other.
# programs which support those fields.
# Note: wordpad (write) and others do not support links.
RTF_HYPERLINKS = NO
# Load stylesheet definitions from file. Syntax is similar to doxygen's
# config file, i.e. a series of assigments. You only have to provide
# replacements, missing definitions are set to their default value.
RTF_STYLESHEET_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
# generate man pages
#MAART: changed
GENERATE_MAN = NO
# The MAN_OUTPUT tag is used to specify where the man pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `man' will be used as the default path.
MAN_OUTPUT = man
# The MAN_EXTENSION tag determines the extension that is added to
# the generated man pages (default is the subroutine's section .3)
MAN_EXTENSION = .3
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
# If the GENERATE_XML tag is set to YES Doxygen will
# generate an XML file that captures the structure of
# the code including all documentation. Warning: This feature
# is still experimental and very incomplete.
GENERATE_XML = NO
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
# evaluate all C-preprocessor directives found in the sources and include
# files.
ENABLE_PREPROCESSING = YES
# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
# names in the source code. If set to NO (the default) only conditional
# compilation will be performed. Macro expansion can be done in a controlled
# way by setting EXPAND_ONLY_PREDEF to YES.
MACRO_EXPANSION = NO
# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
# then the macro expansion is limited to the macros specified with the
# PREDEFINED and EXPAND_AS_PREDEFINED tags.
EXPAND_ONLY_PREDEF = NO
# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
# in the INCLUDE_PATH (see below) will be search if a #include is found.
SEARCH_INCLUDES = YES
# The INCLUDE_PATH tag can be used to specify one or more directories that
# contain include files that are not input files but should be processed by
# the preprocessor.
INCLUDE_PATH =
# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
# patterns (like *.h and *.hpp) to filter out the header-files in the
# directories. If left blank, the patterns specified with FILE_PATTERNS will
# be used.
INCLUDE_FILE_PATTERNS =
# The PREDEFINED tag can be used to specify one or more macro names that
# are defined before the preprocessor is started (similar to the -D option of
# gcc). The argument of the tag is a list of macros of the form: name
# or name=definition (no spaces). If the definition and the = are
# omitted =1 is assumed.
PREDEFINED =
# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then
# this tag can be used to specify a list of macro names that should be expanded.
# The macro definition that is found in the sources will be used.
# Use the PREDEFINED tag if you want to use a different macro definition.
EXPAND_AS_DEFINED =
#---------------------------------------------------------------------------
# Configuration::addtions related to external references
#---------------------------------------------------------------------------
# The TAGFILES tag can be used to specify one or more tagfiles.
TAGFILES =
# When a file name is specified after GENERATE_TAGFILE, doxygen will create
# a tag file that is based on the input files it reads.
GENERATE_TAGFILE =
# If the ALLEXTERNALS tag is set to YES all external classes will be listed
# in the class index. If set to NO only the inherited external classes
# will be listed.
ALLEXTERNALS = NO
# The PERL_PATH should be the absolute path and name of the perl script
# interpreter (i.e. the result of `which perl').
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
# available from the path. This tool is part of Graphviz, a graph visualization
# toolkit from AT&T and Lucent Bell Labs. The other options in this section
# have no effect if this option is set to NO (the default)
HAVE_DOT = NO
# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for each documented class showing the direct and
# indirect inheritance relations. Setting this tag to YES will force the
# the CLASS_DIAGRAMS tag to NO.
CLASS_GRAPH = YES
# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for each documented class showing the direct and
# indirect implementation dependencies (inheritance, containment, and
# class references variables) of the class with other documented classes.
COLLABORATION_GRAPH = YES
# If the ENABLE_PREPROCESSING, INCLUDE_GRAPH, and HAVE_DOT tags are set to
# YES then doxygen will generate a graph for each documented file showing
# the direct and indirect include dependencies of the file with other
# documented files.
INCLUDE_GRAPH = YES
# If the ENABLE_PREPROCESSING, INCLUDED_BY_GRAPH, and HAVE_DOT tags are set to
# YES then doxygen will generate a graph for each documented header file showing
# the documented files that directly or indirectly include this file
INCLUDED_BY_GRAPH = YES
# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
# will graphical hierarchy of all classes instead of a textual one.
GRAPHICAL_HIERARCHY = YES
# The tag DOT_PATH can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found on the path.
DOT_PATH =
# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
# (in pixels) of the graphs generated by dot. If a graph becomes larger than
# this value, doxygen will try to truncate the graph, so that it fits within
# the specified constraint. Beware that most browsers cannot cope with very
# large images.
MAX_DOT_GRAPH_WIDTH = 1024
# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
# (in pixels) of the graphs generated by dot. If a graph becomes larger than
# this value, doxygen will try to truncate the graph, so that it fits within
# the specified constraint. Beware that most browsers cannot cope with very
# large images.
MAX_DOT_GRAPH_HEIGHT = 1024
# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
# generate a legend page explaining the meaning of the various boxes and
# arrows in the dot generated graphs.
GENERATE_LEGEND = YES
#---------------------------------------------------------------------------
# Configuration::addtions related to the search engine
#---------------------------------------------------------------------------
# The SEARCHENGINE tag specifies whether or not a search engine should be
# used. If set to NO the values of all tags below this one will be ignored.
SEARCHENGINE = NO
# The CGI_NAME tag should be the name of the CGI script that
# starts the search engine (doxysearch) with the correct parameters.
# A script with this name will be generated by doxygen.
CGI_NAME = search.cgi
# The CGI_URL tag should be the absolute URL to the directory where the
# cgi binaries are located. See the documentation of your http daemon for
# details.
CGI_URL =
# The DOC_URL tag should be the absolute URL to the directory where the
# documentation is located. If left blank the absolute path to the
# documentation, with file:// prepended to it, will be used.
DOC_URL =
# The DOC_ABSPATH tag should be the absolute path to the directory where the
# documentation is located. If left blank the directory on the local machine
# will be used.
DOC_ABSPATH =
# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
# is installed.
BIN_ABSPATH = c:\program files\doxygen\bin
# The EXT_DOC_PATHS tag can be used to specify one or more paths to
# documentation generated for other projects. This allows doxysearch to search
# the documentation for these projects as well.
EXT_DOC_PATHS =

198
intern/img/extern/IMG_Pixmap.h vendored Normal file
View File

@@ -0,0 +1,198 @@
/**
* $Id$
* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version. The Blender
* Foundation also sells licenses for use in proprietary software under
* the Blender License. See http://www.blender.org/BL/ for information
* about this.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL/BL DUAL LICENSE BLOCK *****
*/
/**
* $Id$
* Copyright (C) 2001 NaN Technologies B.V.
* Abstract base class for pixmaps of different types.
* @author Maarten Gribnau
* @date March 6, 2001
*/
#ifndef _H_IMG_Pixmap
#define _H_IMG_Pixmap
#include "GEN_Types.h"
#include "GEN_Rect.h"
class IMG_Pixmap
{
public:
/** The type of pixels that are stored in this pixmap. */
typedef enum {
kPixelTypeUnknown = 0, /**< R:8, G:8, B:8, Ignore:8 */
// kPixelTypeRGB32 = 1, /**< R:8, G:8, B:8, Ignore:8 */
kPixelTypeRGBA32 = 2, /**< R:8, G:8, B:8, Alpha:8 */
// kPixelTypeRGB16 = 3, /**< Ignore:1, R:5, G:5, B:5 */
// kPixelTypeRGBA16 = 4, /**< Alpha:1, R:5, G:5, B:5 */
// kPixelTypeRGB16_565 = 5, /**< R:5, G:6, B:5 */
// kPixelTypeRGB24 = 6 /**< R:8, G:8, B:8 */
} TPixelType;
/**
* Default constructor.
*/
IMG_Pixmap();
/**
* Constructs a pixmap with the requested width and height.
* @param width The width of the pixmap created.
* @param height The height of the pixmap created.
*/
IMG_Pixmap(GEN_TUns32 width, GEN_TUns32 height);
/**
* Destructor.
*/
virtual ~IMG_Pixmap();
/**
* Access to image data
* @return pointer to the image data
*/
virtual void* getDataPtr() const = 0;
/**
* Access to image width.
* @return width of the image
*/
inline GEN_TUns32 getWidth() const;
/**
* Access to image height.
* @return height of the image
*/
inline GEN_TUns32 getHeight() const;
/**
* Returns the bounds of the pixmap in a rectangle.
* @param bounds of the image
*/
inline void getBounds(GEN_Rect& r) const;
/**
* Access to pixel type.
* @return the pixel type
*/
inline TPixelType getPixelType() const;
/**
* Clamps coordinates inside (0, 0) and (width, height).
* @param x requested x-coordinate
* @param y requested y-coordinate
*/
inline void clamp(GEN_TInt32& x, GEN_TInt32& y) const;
/**
* Clamps u, v coordinates between 0 and 1.
* @param u requested u-coordinate
* @param v requested v-coordinate
*/
inline void clamp(float& u, float& v) const;
/**
* Converts (u,v) coordinates to pixel addresses.
* Assumes that (u,v) coordinates are in the [0,1] range.
* @param u requested u-coordinate in the image
* @param v requested v-coordinate in the image
* @param x calculated x-coordinate in the image
* @param y calculated y-coordinate in the image
*/
inline void getPixelAddress(float u, float v, GEN_TInt32& x, GEN_TInt32& y) const;
/**
* Fills the rectangle given with the color given.
* Performs a bounds check.
* @param r requested bounds rectangle in the image
* @param c color to use
*/
//virtual void fillRect(const GEN_Rect& r, const IMG_ColorRGBA& c) = 0;
protected:
/** Width of the image in pixels */
GEN_TUns32 m_width;
/** Height of the image in pixels */
GEN_TUns32 m_height;
/** Number of bytes for one row in the image. */
GEN_TUns32 m_rowBytes;
/** Size in bits for one pixel */
GEN_TUns32 m_pixelSize;
/** Type of pixels in this image. */
TPixelType m_pixelType;
// TEndian m_bitOrder;
// TEndian m_byteOrder;
};
inline GEN_TUns32 IMG_Pixmap::getWidth() const
{
return m_width;
}
inline GEN_TUns32 IMG_Pixmap::getHeight() const
{
return m_height;
}
inline void IMG_Pixmap::getBounds(GEN_Rect& r) const
{
r.set(0, 0, m_width, m_height);
}
inline IMG_Pixmap::TPixelType IMG_Pixmap::getPixelType() const
{
return m_pixelType;
}
inline void IMG_Pixmap::clamp(GEN_TInt32& x, GEN_TInt32& y) const
{
if (x < 0) x = 0;
if (x > (GEN_TInt32)m_width) x = (GEN_TInt32)m_width;
if (y < 0) y = 0;
if (y > (GEN_TInt32)m_height) y = (GEN_TInt32)m_height;
}
inline void IMG_Pixmap::clamp(float& u, float& v) const
{
if (u < 0.f) u = 0.f;
if (u > 1.f) u = 1.f;
if (v < 0.f) v = 0.f;
if (v > 1.f) v = 1.f;
}
inline void IMG_Pixmap::getPixelAddress(float u, float v, GEN_TInt32& x, GEN_TInt32& y) const
{
x = (GEN_TInt32)(((float)m_width) * u);
y = (GEN_TInt32)(((float)m_height) * v);
}
#endif // _H_IMG_Pixmap

217
intern/img/extern/IMG_PixmapRGBA32.h vendored Normal file
View File

@@ -0,0 +1,217 @@
/**
* $Id$
* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version. The Blender
* Foundation also sells licenses for use in proprietary software under
* the Blender License. See http://www.blender.org/BL/ for information
* about this.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL/BL DUAL LICENSE BLOCK *****
*/
/**
* $Id$
* Copyright (C) 2001 NaN Technologies B.V.
* Pixmap of kPixelTypeRGBA32 type.
* A pixmap with 24 bits per pixel in ABGR format.
* Provides methods to fill rectangular areas in this image with a color.
* Provides methods to paste or blend other pixmaps into this pixmap.
* @author Maarten Gribnau
* @date March 6, 2001
*/
#ifndef _H_IMG_PixmapRGBA32
#define _H_IMG_PixmapRGBA32
#include "IMG_Pixmap.h"
#include "IMG_MemPtr.h"
#include "IMG_Color.h"
class IMG_PixmapRGBA32 : public IMG_Pixmap {
public:
/** The pixel type in this pixmap. */
typedef GEN_TUns32 TPixelRGBA32;
/** The pixel pointer type of this pixmap. */
typedef TPixelRGBA32* TPixelPtr;
/** Indices of color component byes within a pixel. */
typedef enum {
bi_r = 0,
bi_g = 1,
bi_b = 2,
bi_a = 3
} TPixelIndex;
/**
* Constructor.
* Creates a new pixmap of the kPixelTypeRGBA32 type with the requested dimensions.
* @throw <IMG_MemPtr::Size> when an invalid width and/or height is passed.
* @throw <IMG_MemPtr::Memory> when a there is not enough memory to allocate the image.
* @param width the width in pixels of the image.
* @param height the height in pixels of the image.
*/
IMG_PixmapRGBA32(GEN_TUns32 width, GEN_TUns32 height);
/**
* Constructor.
* Creates a new pixmap of the kPixelTypeRGBA32 from a pointer to image data.
* The image data will not be freed upon destruction of this object.
* The owner of this object is reponsible for that.
* @throw <Size> when an invalid width and/or height is passed.
* @param image pointer to the image data.
* @param width the width in pixels of the image.
* @param height the height in pixels of the image.
*/
IMG_PixmapRGBA32(void* image, GEN_TUns32 width, GEN_TUns32 height, GEN_TUns32 rowBytes);
#if 0
/**
* Destructor.
*/
virtual ~IMG_PixmapRGBA32();
#endif
/**
* Fills the rectangle given with the color given.
* Retains the alpha values.
* Performs a bounds check.
* @param r requested bounds rectangle in the image
* @param c color to use
*/
virtual void fillRect(const GEN_Rect& r, const IMG_ColorRGB& c);
/**
* Fills the rectangle given with the color given.
* Sets the alpha values from the color.
* Performs a bounds check.
* @param r requested bounds rectangle in the image
* @param c color to use
*/
virtual void fillRect(const GEN_Rect& r, const IMG_ColorRGBA& c);
/**
* Pastes an area of a pixmap into this pixmap.
* Pastes an area of the given pixmap centered at the given coordinates into this pixmap.
* Ignores the alpha information, this is pasted as well.
* Performs a bounds check.
* @param src the pixmap to paste.
* @param srcBnds the bounds of the area of the pixmap to paste.
* @param destBnds the destination area for the paste.
*/
virtual void setPixmap(const IMG_PixmapRGBA32& src, const GEN_Rect& srcBnds, const GEN_Rect& destBnds);
/**
* Blends an area of a pixmap into this pixmap.
* Blends an area of the given pixmap centered at the given coordinates into this pixmap.
* The alpha information in the given image is used to blend.
* Performs a bounds check.
* @param src the pixmap to paste.
* @param srcBnds the bounds of the area of the pixmap to paste.
* @param destBnds the destination area for the paste.
*/
virtual void blendPixmap(const IMG_PixmapRGBA32& src, const GEN_Rect& srcBnds, const GEN_Rect& destBnds);
protected:
/**
* Returns pointer to the pixel.
* Returns a pointer of TPixelPtr type to the pixel at the requested coordinates.
* Does not perform a bounds check!
* @param x column address of the pixel.
* @param y row address of the pixel.
* @return the pointer calculated.
*/
inline TPixelPtr getPixelPtr(GEN_TUns32 x, GEN_TUns32 y) const;
/**
* Returns the pixel value of a color.
* @param c the color to convert
* @return the pixel value calculated
*/
inline TPixelRGBA32 getPixelValue(const IMG_ColorRGBA& c) const;
/**
* Returns the color of from a pixel value.
* @param p the pixel value
* @param c the color calculated
*/
inline void getColor(TPixelRGBA32 p, IMG_ColorRGBA& c) const;
protected:
/** "Save" memory pointer. */
IMG_MemPtr<TPixelRGBA32> m_pixels;
/** Pointer to the first pixel. */
TPixelPtr m_pixelsBase;
};
inline IMG_PixmapRGBA32::TPixelPtr IMG_PixmapRGBA32::getPixelPtr(GEN_TUns32 x, GEN_TUns32 y) const
{
return (TPixelPtr) (((GEN_TUns8*)m_pixelsBase) + (y*m_rowBytes) + (x<<2));
}
inline IMG_PixmapRGBA32::TPixelRGBA32 IMG_PixmapRGBA32::getPixelValue(const IMG_ColorRGBA& c) const
{
#if 0
// Obtain pixel value through shifting
TPixelRGBA32 p = ((TPixelRGBA32) (((float) 0xFF) * c.m_a)) << 24;
p |= ((TPixelRGBA32) (((float) 0xFF) * c.m_b)) << 16;
p |= ((TPixelRGBA32) (((float) 0xFF) * c.m_g)) << 8;
p |= ((TPixelRGBA32) (((float) 0xFF) * c.m_r));
return p;
#else
// Obtain pixel value through byte indexing
TPixelRGBA32 pixel;
GEN_TUns8* bytes = (GEN_TUns8*)&pixel;
bytes[bi_r] = (GEN_TUns8)(((float) 0xFF) * c.m_r);
bytes[bi_g] = (GEN_TUns8)(((float) 0xFF) * c.m_g);
bytes[bi_b] = (GEN_TUns8)(((float) 0xFF) * c.m_b);
bytes[bi_a] = (GEN_TUns8)(((float) 0xFF) * c.m_a);
return pixel;
#endif
}
inline void IMG_PixmapRGBA32::getColor(TPixelRGBA32 p, IMG_ColorRGBA& c) const
{
#if 0
// Obtain color value through shifting
c.m_a = ((float) ((p >> 24) & 0x00FF)) / ((float) 0xFF);
c.m_b = ((float) ((p >> 16) & 0x00FF)) / ((float) 0xFF);
c.m_g = ((float) ((p >> 8) & 0x00FF)) / ((float) 0xFF);
c.m_r = ((float) ( p & 0x00FF)) / ((float) 0xFF);
#else
// Obtain color value through byte indexing
GEN_TUns8* bytes = (GEN_TUns8*)&p;
c.m_r = ((float)bytes[bi_r]) / ((float) 0xFF);
c.m_g = ((float)bytes[bi_g]) / ((float) 0xFF);
c.m_b = ((float)bytes[bi_b]) / ((float) 0xFF);
c.m_a = ((float)bytes[bi_a]) / ((float) 0xFF);
#endif
}
#endif // _H_IMG_PixmapRGBA32

View File

@@ -0,0 +1,144 @@
/**
* $Id$
* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version. The Blender
* Foundation also sells licenses for use in proprietary software under
* the Blender License. See http://www.blender.org/BL/ for information
* about this.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL/BL DUAL LICENSE BLOCK *****
*/
/**
* $Id$
* Copyright (C) 2001 NaN Technologies B.V.
* Declaration of an RGB color with red, green and blue components.
* Declaration of an RGBA color with red, green, blue and alpha components.
* Components are stored as floats.
* @author Maarten Gribnau
* @date March 7, 2001
*/
#ifndef _H_IMG_Color
#define _H_IMG_Color
class IMG_ColorRGBA;
class IMG_ColorRGB {
public:
/**
* Constructs a color with the given values.
* @param r requested red component of the color
* @param g requested green component of the color
* @param b requested blue component of the color
*/
IMG_ColorRGB(float r=0, float g=0, float b=0)
: m_r(r), m_g(g), m_b(b) {}
/**
* Copy constructor.
* @param c the color to copy.
*/
IMG_ColorRGB(const IMG_ColorRGB& c)
: m_r(c.m_r), m_g(c.m_g), m_b(c.m_b) {}
/**
* Constructs a color without alpha from one with.
* @param c the color to copy.
*/
inline IMG_ColorRGB(const IMG_ColorRGBA& c);
/** Red component of the color */
float m_r;
/** Green component of the color */
float m_g;
/** Blue component of the color */
float m_b;
};
class IMG_ColorRGBA {
public:
/**
* Constructs a color with the given values.
* @param r requested red component of the color
* @param g requested green component of the color
* @param b requested blue component of the color
* @param a requested alpha component of the color
*/
IMG_ColorRGBA(float r=0, float g=0, float b=0, float a=0)
: m_r(r), m_g(g), m_b(b), m_a(a) {}
/**
* Copy constructor.
* @param c the color to copy.
*/
IMG_ColorRGBA(const IMG_ColorRGBA& c)
: m_r(c.m_r), m_g(c.m_g), m_b(c.m_b), m_a(c.m_a) {}
/**
* Constructs a color with alpha from one without.
* @param c the color to copy.
*/
IMG_ColorRGBA(const IMG_ColorRGB& c)
: m_r(c.m_r), m_g(c.m_g), m_b(c.m_b), m_a(0) {}
/**
* Blends the given color with this color.
* Uses the alpha of the given color for blending.
* The alpha of this color is left untouched.
* @param c the color to blend
*/
inline void blendColor(const IMG_ColorRGBA& c);
/** Red component of the color */
float m_r;
/** Green component of the color */
float m_g;
/** Blue component of the color */
float m_b;
/** Alpha component of the color */
float m_a;
};
inline IMG_ColorRGB::IMG_ColorRGB(const IMG_ColorRGBA& c)
: m_r(c.m_r), m_g(c.m_g), m_b(c.m_b) {}
inline void IMG_ColorRGBA::blendColor(const IMG_ColorRGBA& c)
{
float r1 = 1 - c.m_a; // The reverse of alpha
#if IMG_REVERSED_ALPHA
m_r = c.m_a * m_r + r1 * c.m_r;
m_g = c.m_a * m_g + r1 * c.m_g;
m_b = c.m_a * m_b + r1 * c.m_b;
#else
m_r = r1 * m_r + c.m_a * c.m_r;
m_g = r1 * m_g + c.m_a * c.m_g;
m_b = r1 * m_b + c.m_a * c.m_b;
#endif
}
#endif // _H_IMG_Color

View File

@@ -0,0 +1,117 @@
/**
* $Id$
* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version. The Blender
* Foundation also sells licenses for use in proprietary software under
* the Blender License. See http://www.blender.org/BL/ for information
* about this.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL/BL DUAL LICENSE BLOCK *****
*/
/**
* @author Maarten Gribnau
* @date March 8, 2001
*/
#ifndef _H_IMG_MemPtr
#define _H_IMG_MemPtr
#include <stddef.h>
/**
* A memory pointer for memory of any type.
* It can be used to avoid memory leaks when allocating memory in constructors.
* @author Maarten Gribnau
* @date March 8, 2001
*/
template <class T> class IMG_MemPtr {
public:
/** Pointer to the memory */
T* m_p;
bool m_owned;
/**
* Size exception.
* A size exception is thrown when an invalid width and/or height is passed.
*/
class Size {};
/**
* Memory exception.
* A size exception is thrown when a there is not enough memory to allocate the image.
*/
class Memory {};
/**
* Constructs a memory pointer.
* @param s requested size of the pointer
* @throw <Size> when an invalid width and/or height is passed.
* @throw <Memory> when a there is not enough memory to allocate the image.
*/
IMG_MemPtr(size_t s)
: m_p(0), m_owned(false)
{
if (s > 0) {
m_p = new T[s];
if (!m_p) {
throw Memory();
}
m_owned = true;
}
else {
throw Size();
}
}
/**
* Constructs a memory pointer from a pointer.
* @param p the pointer
* @param s requested size of the pointer
* @throw <Size> when an invalid width and/or height is passed.
*/
IMG_MemPtr(void* p, size_t s)
: m_p(0), m_owned(false)
{
if (p && (s > 0)) {
m_p = (T*)p;
}
else {
throw Size();
}
}
/**
* Destructor.
*/
~IMG_MemPtr() { if (m_p && m_owned) { delete [] m_p; m_p = 0; } }
/**
* Access to the memory.
* @return pointer to the memory
*/
operator T*() { return m_p; }
};
#endif // _H_IMG_MemPtr

View File

@@ -0,0 +1,85 @@
/**
* $Id$
* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version. The Blender
* Foundation also sells licenses for use in proprietary software under
* the Blender License. See http://www.blender.org/BL/ for information
* about this.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL/BL DUAL LICENSE BLOCK *****
*/
/**
* $Id$
* Copyright (C) 2001 NaN Technologies B.V.
* Base class for pixmaps.
* @author Maarten Gribnau
* @date March 6, 2001
*/
#include "../extern/IMG_Pixmap.h"
IMG_Pixmap::IMG_Pixmap()
{
m_width = 0;
m_height = 0;
m_rowBytes = 0;
m_pixelSize = 0;
m_pixelType = kPixelTypeUnknown;
/*
#if OS_MACINTOSH
bitOrder = kQ3EndianBig;
byteOrder = kQ3EndianBig;
#else
bitOrder = kQ3EndianLittle;
byteOrder = kQ3EndianLittle;
#endif
*/
}
IMG_Pixmap::IMG_Pixmap(GEN_TUns32 width, GEN_TUns32 height)
{
m_width = width;
m_height = height;
m_rowBytes = 0;
m_pixelSize = 0;
m_pixelType = kPixelTypeUnknown;
/*
#if OS_MACINTOSH
bitOrder = kQ3EndianBig;
byteOrder = kQ3EndianBig;
#else
bitOrder = kQ3EndianLittle;
byteOrder = kQ3EndianLittle;
#endif
*/
}
IMG_Pixmap::~IMG_Pixmap()
{
}

View File

@@ -0,0 +1,260 @@
/**
* $Id$
* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version. The Blender
* Foundation also sells licenses for use in proprietary software under
* the Blender License. See http://www.blender.org/BL/ for information
* about this.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL/BL DUAL LICENSE BLOCK *****
*/
/**
* $Id$
* Copyright (C) 2001 NaN Technologies B.V.
* Base class for pixmaps.
* @author Maarten Gribnau
* @date March 6, 2001
*/
#include "../extern/IMG_PixmapRGBA32.h"
IMG_PixmapRGBA32::IMG_PixmapRGBA32(GEN_TUns32 width, GEN_TUns32 height)
: IMG_Pixmap(), m_pixels(width * height)
{
m_pixelsBase = m_pixels;
m_width = width;
m_height = height;
m_rowBytes = width * sizeof(TPixelRGBA32);
m_pixelSize = 32;
m_pixelType = kPixelTypeRGBA32;
}
IMG_PixmapRGBA32::IMG_PixmapRGBA32(void* image, GEN_TUns32 width, GEN_TUns32 height, GEN_TUns32 rowBytes)
: IMG_Pixmap(), m_pixels(image, width * rowBytes)
{
m_pixelsBase = m_pixels;
m_width = width;
m_height = height;
m_rowBytes = rowBytes;
m_pixelSize = 32;
m_pixelType = kPixelTypeRGBA32;
}
void IMG_PixmapRGBA32::fillRect(const GEN_Rect& r, const IMG_ColorRGB& c)
{
GEN_Rect t_bnds (0, 0, m_width, m_height); // Bounds of this pixmap
GEN_Rect r_bnds (r); // Area to set
// Determine visibility
GEN_TVisibility v = t_bnds.getVisibility(r_bnds);
if (v == GEN_kNotVisible) return;
if (v == GEN_kPartiallyVisible) {
// Clip the destination rectangle to the bounds of this pixmap
t_bnds.clip(r_bnds);
if (r_bnds.isEmpty()) {
return;
}
}
#if 0
// Set new pixels using shifting
// Prepare the pixel value to set
IMG_ColorRGBA ca (c);
TPixelRGBA32 pv = getPixelValue(c);
// Mask off the alpha bits
pv &= 0x00FFFFFF; //0xFFFFFF00;
// Set the pixels in the destination rectangle
for (GEN_TInt32 y = r.m_t; y < r.m_b; y++) {
// Park pixel pointer at the start pixels
TPixelPtr desPtr = getPixelPtr(r_bnds.m_l, y);
for (GEN_TInt32 x = r.m_l; x < r.m_r; x++) {
// Set the new pixel value (retain current alpha)
*(desPtr++) = pv | ((*desPtr) & 0xFF000000); //0x000000FF);
}
}
#else
// Set new values using byte indexing
//IMG_ColorRGBA ca (c);
TPixelRGBA32 src = getPixelValue(c);
TPixelPtr desPtr;
GEN_TUns8* srcBytes = (GEN_TUns8*) &src;
// Set the pixels in the destination rectangle
for (GEN_TInt32 y = r.m_t; y < r.m_b; y++) {
// Park pixel pointer at the start pixels
desPtr = getPixelPtr(r_bnds.m_l, y);
for (GEN_TInt32 x = r.m_l; x < r.m_r; x++) {
// Set the new pixel value (retain current alpha)
((GEN_TUns8*)desPtr)[bi_r] = srcBytes[bi_r];
((GEN_TUns8*)desPtr)[bi_g] = srcBytes[bi_g];
((GEN_TUns8*)desPtr)[bi_b] = srcBytes[bi_b];
desPtr++;
}
}
#endif
}
void IMG_PixmapRGBA32::fillRect(const GEN_Rect& r, const IMG_ColorRGBA& c)
{
GEN_Rect t_bnds (0, 0, m_width, m_height); // Bounds of this pixmap
GEN_Rect r_bnds (r); // Area to set
// Determine visibility
GEN_TVisibility v = t_bnds.getVisibility(r_bnds);
if (v == GEN_kNotVisible) return;
if (v == GEN_kPartiallyVisible) {
// Clip the destination rectangle to the bounds of this pixmap
t_bnds.clip(r_bnds);
if (r_bnds.isEmpty()) {
return;
}
}
// Set the pixels in the destination rectangle
TPixelRGBA32 pixel = getPixelValue(c);
for (GEN_TInt32 y = r.m_t; y < r.m_b; y++) {
// Park pixel pointer at the start pixels
TPixelPtr desPtr = getPixelPtr(r_bnds.m_l, y);
for (GEN_TInt32 x = r.m_l; x < r.m_r; x++) {
*(desPtr++) = pixel;
}
}
}
void IMG_PixmapRGBA32::setPixmap(const IMG_PixmapRGBA32& src, const GEN_Rect& srcBnds, const GEN_Rect& destBnds)
{
GEN_Rect i_bnds (srcBnds); // Bounds of input pixmap
GEN_Rect t_bnds (0, 0, m_width, m_height); // Bounds of this pixmap
GEN_Rect p_bnds (destBnds); // Bounds of the paste area
// The next check could be removed if the caller is made responsible for handing us non-empty rectangles
if (i_bnds.isEmpty()) {
// Nothing to do
return;
}
// Determine visibility of the paste area
GEN_TVisibility v = t_bnds.getVisibility(p_bnds);
if (v == GEN_kNotVisible) return;
if (v == GEN_kPartiallyVisible) {
// Clipping is needed
if (p_bnds.m_l < 0) {
i_bnds.m_l += -p_bnds.m_l;
p_bnds.m_l = 0;
}
if (p_bnds.m_t < 0) {
i_bnds.m_t += -p_bnds.m_t;
p_bnds.m_t = 0;
}
GEN_TInt32 d = t_bnds.getWidth();
if (p_bnds.m_r > d) {
i_bnds.m_r -= d - p_bnds.m_r;
p_bnds.m_r = d;
}
d = t_bnds.getHeight();
if (p_bnds.m_b > d) {
i_bnds.m_b -= d - p_bnds.m_b;
p_bnds.m_b = d;
}
}
// Iterate through the rows
for (GEN_TInt32 r = 0; r < p_bnds.getHeight(); r++) {
// Park pixel pointers at the start pixels
TPixelPtr srcPtr = src.getPixelPtr(i_bnds.m_l, i_bnds.m_t + r);
TPixelPtr desPtr = getPixelPtr(p_bnds.m_l, p_bnds.m_t + r);
// Iterate through the columns
for (int c = 0; c < p_bnds.getWidth(); c++) {
*(desPtr++) = *(srcPtr++);
}
}
}
void IMG_PixmapRGBA32::blendPixmap(const IMG_PixmapRGBA32& src, const GEN_Rect& srcBnds, const GEN_Rect& destBnds)
{
GEN_Rect i_bnds (srcBnds); // Bounds of input pixmap
GEN_Rect t_bnds (0, 0, m_width, m_height); // Bounds of this pixmap
GEN_Rect p_bnds (destBnds); // Bounds of the paste area
// The next check could be removed if the caller is made responsible for handing us non-empty rectangles
if (i_bnds.isEmpty()) {
// Nothing to do
return;
}
// Determine visibility of the paste area
GEN_TVisibility v = t_bnds.getVisibility(p_bnds);
if (v == GEN_kNotVisible) return;
if (v == GEN_kPartiallyVisible) {
// Clipping is needed
if (p_bnds.m_l < 0) {
i_bnds.m_l += -p_bnds.m_l;
p_bnds.m_l = 0;
}
if (p_bnds.m_t < 0) {
i_bnds.m_t += -p_bnds.m_t;
p_bnds.m_t = 0;
}
GEN_TInt32 d = t_bnds.getWidth();
if (p_bnds.m_r > d) {
i_bnds.m_r -= p_bnds.m_r - d;
p_bnds.m_r = d;
}
d = t_bnds.getHeight();
if (p_bnds.m_b > d) {
i_bnds.m_b -= p_bnds.m_b - d;
p_bnds.m_b = d;
}
}
IMG_ColorRGBA srcColor;
IMG_ColorRGBA desColor;
// Iterate through the rows
for (int r = 0; r < p_bnds.getHeight(); r++) {
// Park pixel pointers at the start pixels
TPixelPtr srcPtr = src.getPixelPtr(i_bnds.m_l, i_bnds.m_t + r);
TPixelPtr desPtr = getPixelPtr(p_bnds.m_l, p_bnds.m_t + r);
// Iterate through the columns
for (int c = 0; c < p_bnds.getWidth(); c++) {
// Retrieve colors from source and destination pixmaps
getColor(*srcPtr, srcColor);
getColor(*desPtr, desColor);
// Blend the colors
desColor.blendColor(srcColor);
// Write color back to destination pixmap
*desPtr = getPixelValue(desColor);
srcPtr++;
desPtr++;
}
}
}

View File

@@ -0,0 +1,43 @@
#
# $Id$
#
# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version. The Blender
# Foundation also sells licenses for use in proprietary software under
# the Blender License. See http://www.blender.org/BL/ for information
# about this.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
# All rights reserved.
#
# The Original Code is: all of this file.
#
# Contributor(s): none yet.
#
# ***** END GPL/BL DUAL LICENSE BLOCK *****
# Makefile for the img library
LIBNAME = img
DIR = $(OCGDIR)/intern/$(LIBNAME)
include nan_compile.mk
CCFLAGS += $(LEVEL_2_CPP_WARNINGS)
CPPFLAGS += -I../../generic/extern
CPPFLAGS += -I../extern
CPPFLAGS += -I../intern

View File

@@ -0,0 +1,126 @@
# Microsoft Developer Studio Project File - Name="img" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=img - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "img.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "img.mak" CFG="img - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "img - Win32 Release" (based on "Win32 (x86) Static Library")
!MESSAGE "img - Win32 Debug" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "img - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "..\..\..\..\..\obj\img\windows\"
# PROP Intermediate_Dir "..\..\..\..\..\obj\img\windows\"
# PROP Target_Dir ""
LINK32=link.exe -lib
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /W3 /GX /O2 /I "../../../generic/extern" /I "../extern" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "img - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "..\..\..\..\..\obj\img\windows\debug"
# PROP Intermediate_Dir "..\..\..\..\..\obj\img\windows\debug"
# PROP Target_Dir ""
LINK32=link.exe -lib
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../generic/extern" /I "../extern" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ENDIF
# Begin Target
# Name "img - Win32 Release"
# Name "img - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\intern\IMG_Pixmap.cpp
# End Source File
# Begin Source File
SOURCE=..\..\intern\IMG_PixmapRGBA32.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Group "intern"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\intern\IMG_Color.h
# End Source File
# Begin Source File
SOURCE=..\..\intern\IMG_MemPtr.h
# End Source File
# End Group
# Begin Group "extern"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\extern\IMG_Pixmap.h
# End Source File
# Begin Source File
SOURCE=..\..\extern\IMG_PixmapRGBA32.h
# End Source File
# End Group
# End Group
# End Target
# End Project

View File

@@ -0,0 +1,41 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "generic"="..\..\..\generic\make\msvc\generic.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "img"=".\img.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################