diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2006-11-08 23:33:28 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2006-11-08 23:33:28 +0300 |
commit | f350836342e8dc4906dc38a3da905cbc336b06a7 (patch) | |
tree | 2770a99eb76db6655009f9d0aad46877a2bc10c7 | |
parent | 011f531359102a624126841b7ddf7beb94af1f7e (diff) |
While I'm breaking build systems anyway, also removed the two img modules,
they are not used anymore in the new image paint code.
33 files changed, 0 insertions, 4860 deletions
diff --git a/intern/img/doc/Doxyfile.win b/intern/img/doc/Doxyfile.win deleted file mode 100644 index 242357fe7b5..00000000000 --- a/intern/img/doc/Doxyfile.win +++ /dev/null @@ -1,747 +0,0 @@ -# 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 = diff --git a/intern/img/extern/IMG_Pixmap.h b/intern/img/extern/IMG_Pixmap.h deleted file mode 100644 index d9ab96cd745..00000000000 --- a/intern/img/extern/IMG_Pixmap.h +++ /dev/null @@ -1,200 +0,0 @@ -/** - * $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 */ - diff --git a/intern/img/extern/IMG_PixmapRGBA32.h b/intern/img/extern/IMG_PixmapRGBA32.h deleted file mode 100644 index 861b9ab3ebf..00000000000 --- a/intern/img/extern/IMG_PixmapRGBA32.h +++ /dev/null @@ -1,218 +0,0 @@ -/** - * $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 */ - diff --git a/intern/img/intern/IMG_Color.h b/intern/img/intern/IMG_Color.h deleted file mode 100644 index b7b97fc4aa2..00000000000 --- a/intern/img/intern/IMG_Color.h +++ /dev/null @@ -1,143 +0,0 @@ -/** - * $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 */ - diff --git a/intern/img/intern/IMG_MemPtr.h b/intern/img/intern/IMG_MemPtr.h deleted file mode 100644 index a89e1f48d00..00000000000 --- a/intern/img/intern/IMG_MemPtr.h +++ /dev/null @@ -1,118 +0,0 @@ -/** - * $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 */ - diff --git a/intern/img/intern/IMG_Pixmap.cpp b/intern/img/intern/IMG_Pixmap.cpp deleted file mode 100644 index 51bf3b30038..00000000000 --- a/intern/img/intern/IMG_Pixmap.cpp +++ /dev/null @@ -1,88 +0,0 @@ -/** - * $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 - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#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() -{ -} diff --git a/intern/img/intern/IMG_PixmapRGBA32.cpp b/intern/img/intern/IMG_PixmapRGBA32.cpp deleted file mode 100644 index a79ffe1b6e4..00000000000 --- a/intern/img/intern/IMG_PixmapRGBA32.cpp +++ /dev/null @@ -1,267 +0,0 @@ -/** - * $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 - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "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++; - } - } -} diff --git a/intern/img/intern/Makefile b/intern/img/intern/Makefile deleted file mode 100644 index 824699f49bc..00000000000 --- a/intern/img/intern/Makefile +++ /dev/null @@ -1,43 +0,0 @@ -# -# $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 - diff --git a/intern/img/make/msvc/img.dsp b/intern/img/make/msvc/img.dsp deleted file mode 100644 index 5110bdbb200..00000000000 --- a/intern/img/make/msvc/img.dsp +++ /dev/null @@ -1,126 +0,0 @@ -# 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 diff --git a/intern/img/make/msvc/img.dsw b/intern/img/make/msvc/img.dsw deleted file mode 100644 index 433f994ce5c..00000000000 --- a/intern/img/make/msvc/img.dsw +++ /dev/null @@ -1,41 +0,0 @@ -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> -{{{ -}}} - -############################################################################### - diff --git a/intern/img/make/msvc_7_0/img.sln b/intern/img/make/msvc_7_0/img.sln deleted file mode 100644 index ae107f825d0..00000000000 --- a/intern/img/make/msvc_7_0/img.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 7.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "img", "img.vcproj", "{06306F63-7933-4CE4-AF3D-4FBD8AD80811}" -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - ConfigName.0 = Debug - ConfigName.1 = Release - EndGlobalSection - GlobalSection(ProjectDependencies) = postSolution - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {06306F63-7933-4CE4-AF3D-4FBD8AD80811}.Debug.ActiveCfg = Debug|Win32 - {06306F63-7933-4CE4-AF3D-4FBD8AD80811}.Debug.Build.0 = Debug|Win32 - {06306F63-7933-4CE4-AF3D-4FBD8AD80811}.Release.ActiveCfg = Release|Win32 - {06306F63-7933-4CE4-AF3D-4FBD8AD80811}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/intern/img/make/msvc_7_0/img.vcproj b/intern/img/make/msvc_7_0/img.vcproj deleted file mode 100644 index 33d39f26912..00000000000 --- a/intern/img/make/msvc_7_0/img.vcproj +++ /dev/null @@ -1,142 +0,0 @@ -<?xml version="1.0" encoding = "Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="7.00" - Name="img" - SccProjectName="" - SccLocalPath=""> - <Platforms> - <Platform - Name="Win32"/> - </Platforms> - <Configurations> - <Configuration - Name="Release|Win32" - OutputDirectory=".\..\..\..\..\..\obj\img\windows" - IntermediateDirectory=".\..\..\..\..\..\obj\img\windows" - ConfigurationType="4" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="FALSE" - CharacterSet="2"> - <Tool - Name="VCCLCompilerTool" - InlineFunctionExpansion="1" - AdditionalIncludeDirectories="../../../generic/extern,../extern" - PreprocessorDefinitions="WIN32,NDEBUG,_LIB" - StringPooling="TRUE" - RuntimeLibrary="4" - EnableFunctionLevelLinking="TRUE" - UsePrecompiledHeader="2" - PrecompiledHeaderFile=".\..\..\..\..\..\obj\img\windows/img.pch" - AssemblerListingLocation=".\..\..\..\..\..\obj\img\windows/" - ObjectFile=".\..\..\..\..\..\obj\img\windows/" - ProgramDataBaseFileName=".\..\..\..\..\..\obj\img\windows/" - WarningLevel="3" - SuppressStartupBanner="TRUE" - CompileAs="0"/> - <Tool - Name="VCCustomBuildTool"/> - <Tool - Name="VCLibrarianTool" - OutputFile=".\..\..\..\..\..\obj\img\windows\img.lib" - SuppressStartupBanner="TRUE"/> - <Tool - Name="VCMIDLTool"/> - <Tool - Name="VCPostBuildEventTool"/> - <Tool - Name="VCPreBuildEventTool"/> - <Tool - Name="VCPreLinkEventTool"/> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="NDEBUG" - Culture="1033"/> - <Tool - Name="VCWebServiceProxyGeneratorTool"/> - </Configuration> - <Configuration - Name="Debug|Win32" - OutputDirectory=".\..\..\..\..\..\obj\img\windows\debug" - IntermediateDirectory=".\..\..\..\..\..\obj\img\windows\debug" - ConfigurationType="4" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="FALSE" - CharacterSet="2"> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="../../../generic/extern,../extern" - PreprocessorDefinitions="WIN32,_DEBUG,_LIB" - BasicRuntimeChecks="3" - RuntimeLibrary="5" - UsePrecompiledHeader="2" - PrecompiledHeaderFile=".\..\..\..\..\..\obj\img\windows\debug/img.pch" - AssemblerListingLocation=".\..\..\..\..\..\obj\img\windows\debug/" - ObjectFile=".\..\..\..\..\..\obj\img\windows\debug/" - ProgramDataBaseFileName=".\..\..\..\..\..\obj\img\windows\debug/" - WarningLevel="3" - SuppressStartupBanner="TRUE" - DebugInformationFormat="4" - CompileAs="0"/> - <Tool - Name="VCCustomBuildTool"/> - <Tool - Name="VCLibrarianTool" - OutputFile=".\..\..\..\..\..\obj\img\windows\debug\img.lib" - SuppressStartupBanner="TRUE"/> - <Tool - Name="VCMIDLTool"/> - <Tool - Name="VCPostBuildEventTool"/> - <Tool - Name="VCPreBuildEventTool"/> - <Tool - Name="VCPreLinkEventTool"/> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="_DEBUG" - Culture="1033"/> - <Tool - Name="VCWebServiceProxyGeneratorTool"/> - </Configuration> - </Configurations> - <Files> - <Filter - Name="Source Files" - Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"> - <File - RelativePath="..\..\intern\IMG_Pixmap.cpp"> - </File> - <File - RelativePath="..\..\intern\IMG_PixmapRGBA32.cpp"> - </File> - </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl"> - <Filter - Name="intern" - Filter=""> - <File - RelativePath="..\..\intern\IMG_Color.h"> - </File> - <File - RelativePath="..\..\intern\IMG_MemPtr.h"> - </File> - </Filter> - <Filter - Name="extern" - Filter=""> - <File - RelativePath="..\..\extern\IMG_Pixmap.h"> - </File> - <File - RelativePath="..\..\extern\IMG_PixmapRGBA32.h"> - </File> - </Filter> - </Filter> - </Files> - <Globals> - </Globals> -</VisualStudioProject> diff --git a/source/blender/SConscript b/source/blender/SConscript index 75bd5d34822..7d4b0b8f3cf 100644 --- a/source/blender/SConscript +++ b/source/blender/SConscript @@ -9,7 +9,6 @@ SConscript(['avi/SConscript', 'blenpluginapi/SConscript', 'imbuf/SConscript', 'imbuf/intern/cineon/SConscript', - 'img/SConscript', 'makesdna/SConscript', 'python/SConscript', 'radiosity/SConscript', diff --git a/source/blender/img/IMG_Api.h b/source/blender/img/IMG_Api.h deleted file mode 100644 index 6f9a25f483c..00000000000 --- a/source/blender/img/IMG_Api.h +++ /dev/null @@ -1,69 +0,0 @@ -/** - * $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 7, 2001 - */ -#ifndef _H_IMG_API -#define _H_IMG_API - -#include <stddef.h> - -typedef void* IMG_BrushPtr; -typedef void* IMG_CanvasPtr; - -#ifdef __cplusplus -extern "C" { -#endif - - -extern IMG_BrushPtr IMG_BrushCreate(unsigned int width, unsigned int height, float *rgba); -extern void IMG_BrushDispose(IMG_BrushPtr brush); -extern void IMG_BrushSetInnerRaduisRatio(IMG_BrushPtr brush,float aspect); - -extern IMG_CanvasPtr IMG_CanvasCreate(unsigned int width, unsigned int height); -extern IMG_CanvasPtr IMG_CanvasCreateFromPtr(void* imagePtr, unsigned int width, unsigned int height, size_t rowBytes); -extern void IMG_CanvasDispose(IMG_CanvasPtr canvas); -extern void IMG_CanvasDraw(IMG_CanvasPtr canvas, IMG_BrushPtr brush, unsigned int x, unsigned int y); -extern void IMG_CanvasDrawUV(IMG_CanvasPtr canvas, IMG_BrushPtr brush, float u, float v); -extern void IMG_CanvasDrawLine(IMG_CanvasPtr canvas, IMG_BrushPtr brush, unsigned int xStart, unsigned int yStart, unsigned int xEns, unsigned int yEnd); -extern void IMG_CanvasDrawLineUV(IMG_CanvasPtr canvas, IMG_BrushPtr brush, float uStart, float vStart, float uEnd, float vEnd); -extern void IMG_CanvasDrawLineUVEX(IMG_CanvasPtr canvas, IMG_BrushPtr brush, float uStart, float vStart, float uEnd, float vEnd, int torus); -extern void IMG_CanvasSoftenAt(IMG_CanvasPtr canvas,float u, float v, unsigned int size,float alpha, float aspect, int torus); -extern void IMG_CanvasFill(IMG_CanvasPtr canvas, float *rgba); -extern void IMG_CanvasSmear(IMG_CanvasPtr canvas,float uStart, float vStart, float uEnd, float vEnd, unsigned int size, float alpha, float aspect, int torus); -extern void IMG_CanvasCloneAt(IMG_CanvasPtr canvas,IMG_CanvasPtr other,float u,float v,float cu,float cv,int size,float alpha,float aspect); - -#ifdef __cplusplus -} -#endif - -#endif // _H_IMG_API - diff --git a/source/blender/img/Makefile b/source/blender/img/Makefile deleted file mode 100644 index 2e1172d4635..00000000000 --- a/source/blender/img/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# -# $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 ***** -# -# Bounces make to subdirectories. - -SOURCEDIR = source/blender/img -DIRS = intern - -include nan_subdirs.mk diff --git a/source/blender/img/SConscript b/source/blender/img/SConscript deleted file mode 100644 index a2a60c3428b..00000000000 --- a/source/blender/img/SConscript +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env python -Import ('env') - -sources = env.Glob('intern/*.cpp') - -env.BlenderLib ( 'blender_img', sources, [], [], libtype='core', priority = 35 ) diff --git a/source/blender/img/intern/IMG_Api.cpp b/source/blender/img/intern/IMG_Api.cpp deleted file mode 100644 index e59d5bfa586..00000000000 --- a/source/blender/img/intern/IMG_Api.cpp +++ /dev/null @@ -1,167 +0,0 @@ -/** - * $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 ***** - */ -#include "../IMG_Api.h" -#include "IMG_BrushRGBA32.h" -#include "IMG_CanvasRGBA32.h" - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -IMG_BrushPtr IMG_BrushCreate(unsigned int w, unsigned int h, float *rgba) -{ - IMG_BrushPtr brush = 0; - try { - IMG_ColorRGB c (rgba[0], rgba[1], rgba[2]); - brush = new IMG_BrushRGBA32 (w, h, c, rgba[3]); - } - catch (...) { - brush = 0; - } - return brush; -} - -void IMG_BrushDispose(IMG_BrushPtr brush) -{ - if (brush) { - delete ((IMG_BrushRGBA32*)brush); - brush = 0; - } -} - -void IMG_BrushSetInnerRaduisRatio(IMG_BrushPtr brush,float aspect) -{ - if (brush) { - TUns32 he = ((IMG_BrushRGBA32*)brush)->getHeight(); - TUns32 we = ((IMG_BrushRGBA32*)brush)->getWidth(); - TUns32 si = we; - if (he > si) si = we; - he = si/2; - we = (TUns32)(aspect*si/2); -// if (we < 2) we = 2; - - - ((IMG_BrushRGBA32*)brush)->setRadii(we,he); - } -} - -IMG_CanvasPtr IMG_CanvasCreate(unsigned int w, unsigned int h) -{ - IMG_CanvasPtr canvas = 0; - try { - canvas = new IMG_CanvasRGBA32 (w, h); - } - catch (...) { - canvas = 0; - } - return canvas; -} - -IMG_CanvasPtr IMG_CanvasCreateFromPtr(void* imagePtr, unsigned int w, unsigned int h, size_t rowBytes) -{ - IMG_CanvasPtr canvas = 0; - try { - canvas = new IMG_CanvasRGBA32 (imagePtr, w, h, rowBytes); - } - catch (...) { - canvas = 0; - } - return canvas; -} - -void IMG_CanvasDispose(IMG_CanvasPtr canvas) -{ - if (canvas) { - delete ((IMG_CanvasRGBA32*)canvas); - canvas = 0; - } -} - -#if 0 -void IMG_CanvasDraw(IMG_CanvasPtr canvas, IMG_BrushPtr brush, unsigned int x, unsigned int y) -{ - if (!(canvas && brush)) return; - ((IMG_CanvasRGBA32*)canvas)->blendPixmap((TUns32)x, (TUns32)y, *((IMG_BrushRGBA32*)brush)); -} - - -void IMG_CanvasDrawUV(IMG_CanvasPtr canvas, IMG_BrushPtr brush, float u, float v) -{ - if (!(canvas && brush)) return; - ((IMG_CanvasRGBA32*)canvas)->blendPixmap(u, v, *((IMG_BrushRGBA32*)brush)); -} -#endif - - -void IMG_CanvasDrawLine(IMG_CanvasPtr canvas, IMG_BrushPtr brush, unsigned int xStart, unsigned int yStart, unsigned int xEnd, unsigned int yEnd) -{ - if (!(canvas && brush)) return; - ((IMG_CanvasRGBA32*)canvas)->blendPixmap((TUns32)xStart, (TUns32)yStart, (TUns32)xEnd, (TUns32)yEnd, *((IMG_BrushRGBA32*)brush)); -} - - -void IMG_CanvasDrawLineUV(IMG_CanvasPtr canvas, IMG_BrushPtr brush, float uStart, float vStart, float uEnd, float vEnd) -{ - if (!(canvas && brush)) return; - ((IMG_CanvasRGBA32*)canvas)->blendPixmap(uStart, vStart, uEnd, vEnd, *((IMG_BrushRGBA32*)brush)); -} - -void IMG_CanvasDrawLineUVEX(IMG_CanvasPtr canvas, IMG_BrushPtr brush, float uStart, float vStart, float uEnd, float vEnd, int torus) -{ - if (!(canvas && brush)) return; - ((IMG_CanvasRGBA32*)canvas)->blendPixmap(uStart, vStart, uEnd, vEnd, *((IMG_BrushRGBA32*)brush), torus); -} - -void IMG_CanvasSoftenAt(IMG_CanvasPtr canvas,float u, float v, unsigned int size,float alpha, float aspect, int torus) -{ - ((IMG_CanvasRGBA32*)canvas)->SoftenAt(u, v, (TUns32)size, alpha, aspect, torus); -} - -void IMG_CanvasFill(IMG_CanvasPtr canvas, float *rgba) -{ - IMG_ColorRGB c (rgba[0], rgba[1], rgba[2]); - IMG_Rect R (0, 0, ((IMG_CanvasRGBA32*)canvas)->getWidth(), - ((IMG_CanvasRGBA32*)canvas)->getHeight()); // Bounds of this pixmap - ((IMG_CanvasRGBA32*)canvas)->fillRect(R, c); -} - -void IMG_CanvasSmear(IMG_CanvasPtr canvas,float uStart, float vStart, float uEnd, float vEnd, unsigned int size, float alpha, float aspect, int torus) -{ - ((IMG_CanvasRGBA32*)canvas)->Smear(uStart, vStart, uEnd, vEnd, size, alpha, aspect, torus); - -} - -void IMG_CanvasCloneAt(IMG_CanvasPtr canvas,IMG_CanvasPtr other,float u,float v,float cu,float cv,int size,float alpha,float aspect) -{ - ((IMG_CanvasRGBA32*)canvas)->CloneAt((IMG_CanvasRGBA32*)other, u, v, cu, cv, size, alpha, aspect); -} - diff --git a/source/blender/img/intern/IMG_BrushRGBA32.cpp b/source/blender/img/intern/IMG_BrushRGBA32.cpp deleted file mode 100644 index 6678365d6da..00000000000 --- a/source/blender/img/intern/IMG_BrushRGBA32.cpp +++ /dev/null @@ -1,132 +0,0 @@ -/** - * $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 ***** - */ - -#include "IMG_BrushRGBA32.h" -#include <math.h> - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -IMG_BrushRGBA32::IMG_BrushRGBA32(TUns32 w, TUns32 h, const IMG_ColorRGB& c, float a) - : IMG_PixmapRGBA32(w, h), m_color(c), m_alpha(a) -{ - m_ro = w < h ? w/2 : h/2; - m_ri = m_ro >> 1; - updateImage(); -} - - -void IMG_BrushRGBA32::setColor(const IMG_ColorRGB& c) -{ - m_color = c; - updateImage(); -} - - -void IMG_BrushRGBA32::setTransparency(float a) -{ - m_alpha = a; - if (m_alpha > 1.f) m_alpha = 1.f; - if (m_alpha < 0.f) m_alpha = 0.f; - updateImage(); -} - - -void IMG_BrushRGBA32::setRadii(TUns32 rI, TUns32 rO) -{ - m_ri = rI; - m_ro = rO; - - TUns32 w_2 = m_width >> 1; - TUns32 h_2 = m_height >> 1; - - /* - * Make the brush size smaller than half of the minimum - * width or height of the pixmap. Make sure that inner - * radius <= outer radius. - */ - if (m_ro > w_2) m_ro = w_2; - if (m_ro > h_2) m_ro = h_2; - if (m_ri > m_ro) m_ri = m_ro; - - updateImage(); -} - - -void IMG_BrushRGBA32::updateImage() -{ - float fcx = m_width / 2.0f; - float fcy = m_height/ 2.0f ; - - - // Prepare pixel values for this pixmap - IMG_ColorRGBA c (m_color.m_r, m_color.m_g, m_color.m_b, 0.f); - TPixelRGBA32 pOut = getPixelValue(c); - c.m_a = m_alpha; - TPixelRGBA32 pIn = getPixelValue(c); - TPixelRGBA32 p = getPixelValue(c); - TUns8* pa = & (((TUns8*)&p)[bi_a]); - - // Set the pixels in the destination rectangle - for (TUns32 y = 0; y < m_height; y++) { - // Park pixel pointer at the start pixels - TPixelPtr desPtr = getPixelPtr(0, y); - for (TUns32 x = 0; x < m_width; x++) { - // Calculate the distance between current pixel and center - float dX = (float)((TInt32)x - fcx); - float dY = (float)((TInt32)y - fcy); - float d = (float) ::sqrt(dX*dX + dY*dY); - float a; - - if (d <= m_ri) { - *desPtr = pIn; - } - else { - if ((d < m_ro) && (m_ri < m_ro)) { - // Calculate alpha, linear - a = (d - m_ri) / (m_ro - m_ri); - // Now: 0 <= a <= 1 - a = (float)::pow(a, 0.5f); - a = (1.f - a) * m_alpha; - // Now: m_alpha <= a <= 1 - // Store pixel - *pa = (TUns8)(a * ((float)0xFF)); - *desPtr = p; - } - else { - *desPtr = pOut; - } - } - desPtr++; - } - } -} diff --git a/source/blender/img/intern/IMG_BrushRGBA32.h b/source/blender/img/intern/IMG_BrushRGBA32.h deleted file mode 100644 index 90d4e124892..00000000000 --- a/source/blender/img/intern/IMG_BrushRGBA32.h +++ /dev/null @@ -1,134 +0,0 @@ -/** - * $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 ***** - */ -#ifndef _H_IMG_BrushRGBA32 -#define _H_IMG_BrushRGBA32 - -#include "IMG_PixmapRGBA32.h" - -/** - * A brush used for drawing in pixmaps. - * The brush is a pixmap as well. - * Drawing can be implemented by blending the brush into the pixmap. - * - * @author Maarten Gribnau - * @date March 7, 2001 - * @todo Check the algorithm - */ - -class IMG_BrushRGBA32 : public IMG_PixmapRGBA32 { -public: - /** - * Constructs a brush image with the dimensions and color given. - * @param w width of the brush image - * @param h height of the brush image - * @param c color of the brush - * @param a transparency in the center of the brush - */ - IMG_BrushRGBA32(TUns32 w, TUns32 h, const IMG_ColorRGB& c, float a = 0.8f); - - /** - * Sets the color of the brush. - * @param c color of the brush - */ - virtual void setColor(const IMG_ColorRGB& c); - - /** - * Returns the color of the brush. - * @param c color of the brush - */ - inline virtual void getColor(IMG_ColorRGB& c) const; - - /** - * Sets the transparency of the brush. - * @param a transparency of the brush - */ - virtual void setTransparency(float a); - - /** - * Returns the transparency of the brush. - * @param a transparency of the brush - */ - inline virtual float getTransparency() const; - - /** - * Sets the shape of the brush from two radii (inner and outer). - * This creates a brush with alpha==0 inside the inner radius - * and gradually fades to alpha==1 at the outer radius. - * Inner radius should be smaller or equal to the outer radius. - * If not, the outer radius is made equal to the inner radius. - * If the either radius is larger than the bounds of the brush, - * they are clipped. - * @param rI inner radius - * @param rO outer radius - */ - virtual void setRadii(TUns32 rI, TUns32 rO); - - /** - * Returns the radii that determine the shape of the brush. - * @param rI inner radius - * @param rO outer radius - */ - inline virtual void getRadii(TUns32& rI, TUns32& rO) const; - -protected: - /** - * Updates the image of this brush. - * The image is created using the current color, transparency and shape radii. - */ - virtual void updateImage(); - - IMG_ColorRGB m_color; /** The color of the brush */ - float m_alpha; /** The transparency of the brush */ - TUns32 m_ri; /** The inner radius of the brush */ - TUns32 m_ro; /** The outer radius of the brush */ -}; - - -inline void IMG_BrushRGBA32::getRadii(TUns32& rI, TUns32& rO) const -{ - rI = m_ri; - rO = m_ro; -} - -inline float IMG_BrushRGBA32::getTransparency() const -{ - return m_alpha; -} - -inline void IMG_BrushRGBA32::getColor(IMG_ColorRGB& c) const -{ - c = m_color; -} - - -#endif // _H_IMG_BrushRGBA32 - diff --git a/source/blender/img/intern/IMG_CanvasRGBA32.cpp b/source/blender/img/intern/IMG_CanvasRGBA32.cpp deleted file mode 100644 index 6070160d489..00000000000 --- a/source/blender/img/intern/IMG_CanvasRGBA32.cpp +++ /dev/null @@ -1,337 +0,0 @@ -/** - * $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 ***** - */ - -#include "IMG_CanvasRGBA32.h" - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -IMG_CanvasRGBA32::IMG_CanvasRGBA32(TUns32 width, TUns32 height) - : IMG_PixmapRGBA32(width, height) -{ -} - -IMG_CanvasRGBA32::IMG_CanvasRGBA32(void* image, TUns32 width, TUns32 height, TUns32 rowBytes) - : IMG_PixmapRGBA32(image, width, height, rowBytes) -{ -} - - -void IMG_CanvasRGBA32::blendPixmap( - TUns32 xStart, TUns32 yStart, TUns32 xEnd, TUns32 yEnd, - const IMG_PixmapRGBA32& pixmap, bool torus) -{ - // Determine visibility of the line - IMG_Line l (xStart, yStart, xEnd, yEnd); // Line used for blending - IMG_Rect bnds (0, 0, m_width, m_height); // Bounds of this pixmap - TVisibility v = bnds.getVisibility(l); - if (!torus) { - if (v == kNotVisible) - return; - if (v == kPartiallyVisible) - bnds.clip(l); - } - - float numSteps = (((float)l.getLength()) / ((float)pixmap.getWidth() / 4)); - //numSteps *= 4; - numSteps = numSteps ? numSteps : 1; - float step = 0.f, stepSize = 1.f / ((float)numSteps); - TInt32 x, y; - for (TUns32 s = 0; s < numSteps; s++) { - l.getPoint(step, x, y); - if (torus) - IMG_PixmapRGBA32::blendPixmapTorus((TUns32)x, (TUns32)y, pixmap); - else - IMG_PixmapRGBA32::blendPixmap((TUns32)x, (TUns32)y, pixmap); - step += stepSize; - } -} - - -void IMG_CanvasRGBA32::blendPixmap( - float uStart, float vStart, float uEnd, float vEnd, - const IMG_PixmapRGBA32& pixmap, bool torus) -{ - TUns32 xStart, yStart, xEnd, yEnd; - getPixelAddress(uStart, vStart, xStart, yStart); - getPixelAddress(uEnd, vEnd, xEnd, yEnd); - blendPixmap(xStart, yStart, xEnd, yEnd, pixmap, torus); -} - - -void IMG_CanvasRGBA32::SoftenAt(float u, float v, TUns32 size, float alpha, float aspect, bool torus) -{ - IMG_BrushRGBA32* brush = 0; - int flag=0; - try { - IMG_ColorRGB c (1.0, 1.0, 1.0); - brush = new IMG_BrushRGBA32 (size, size, c, alpha); - } - catch (...) { - /* no brush , no fun ! */ - return; - } - - TUns32 ro,ri; - ro = size/2; - ri = (int)(aspect/2.0f * size); - if (ri > 2 ) ri =2; - if (ri > ro ) ri =ro; - brush->setRadii(ri,ro); - - - TUns32 x, y; - TUns32 xx, yy; - getPixelAddress(u, v, x, y); - xx = x - size/2; - yy = y - size/2; - if(torus) flag = 1; - - /* now modify brush */ - for (int i= 0 ; i<(int)size;i++){ - for (int j= 0 ; j<(int)size;j++){ - - float sR,sG,sB,sA; - float cR,cG,cB=0.0; - - if (torus) - IMG_PixmapRGBA32::getRGBAatTorus(xx+i,yy+j ,&cR,&cG,&cB,0); - else - IMG_PixmapRGBA32::getRGBAat(xx+i,yy+j ,&cR,&cG,&cB,0); - - int ccount = 1; - /* - cR += 7.0*cR; - cG += 7.0*cG; - cB += 7.0*cB; - ccount += 7.0; - */ - -add_if_in(xx+i+1,yy+j+1,cR,cG,cB,ccount,flag); -add_if_in(xx+i+1,yy+j ,cR,cG,cB,ccount,flag); -add_if_in(xx+i+1,yy+j-1,cR,cG,cB,ccount,flag); - -add_if_in(xx+i,yy+j+1,cR,cG,cB,ccount,flag); -add_if_in(xx+i,yy+j-1,cR,cG,cB,ccount,flag); - -add_if_in(xx+i-1,yy+j+1,cR,cG,cB,ccount,flag); -add_if_in(xx+i-1,yy+j ,cR,cG,cB,ccount,flag); -add_if_in(xx+i-1,yy+j-1,cR,cG,cB,ccount,flag); - - - sR =cR*255.0f/ccount; - sG =cG*255.0f/ccount; - sB =cB*255.0f/ccount; - - sA =255.0; - brush->setRGBAat(i,j,&sR,&sG,&sB,NULL); - } - } - - /* apply */ - if (torus) - IMG_PixmapRGBA32::blendPixmapTorus(x, y, *brush); - else - IMG_PixmapRGBA32::blendPixmap(x, y, *brush); - - /* done clean up */ - if (brush) { - delete ((IMG_BrushRGBA32*)brush); - brush = 0; - } -} - - -IMG_BrushRGBA32* IMG_CanvasRGBA32::LiftBrush(TUns32 x, TUns32 y, TUns32 size, float alpha, float aspect, short flags ) -{ - IMG_BrushRGBA32* brush = 0; - float mR,mG,mB=0.0; - try { - IMG_ColorRGB c (1.0, 1.0, 1.0); - brush = new IMG_BrushRGBA32 (size, size, c, alpha); - } - catch (...) { - /* no brush , no fun ! */ - return(NULL); - } - - TUns32 ro,ri; - ro = size/2; - ri = (int)(aspect/2.0f * size); - if (ri > 2 ) ri =2; - if (ri > ro ) ri =ro; - brush->setRadii(ri,ro); - - - TUns32 xx, yy; - xx = x - size/2; - yy = y - size/2; - IMG_PixmapRGBA32::getRGBAat(xx,yy,&mR,&mG,&mB,0); - for (int i= 0 ; i<(int)size;i++){ - for (int j= 0 ; j<(int)size;j++){ - float cR,cG,cB,cA=0.0; - cR = mR; cG = mG; cB = mB; - int res =IMG_PixmapRGBA32::getRGBAat(xx+i,yy+j ,&cR,&cG,&cB,0); - cR *= 255.0f; - cG *= 255.0f; - cB *= 255.0f; - cA *= 0.0; - if (res) - brush->setRGBAat(i,j,&cR,&cG,&cB,NULL); - else - brush->setRGBAat(i,j,&cR,&cG,&cB,&cA); - - } - } - return(brush); -} - -IMG_BrushRGBA32* IMG_CanvasRGBA32::LiftBrush(float u, float v, TUns32 size, float alpha, float aspect, short flags ) -{ - IMG_BrushRGBA32* brush = 0; - float mR,mG,mB=0.0; - try { - IMG_ColorRGB c (1.0, 1.0, 1.0); - brush = new IMG_BrushRGBA32 (size, size, c, alpha); - } - catch (...) { - /* no brush , no fun ! */ - return(NULL); - } - - TUns32 ro,ri; - ro = size/2; - ri = (int)(aspect/2.0f * size); - if (ri > 2 ) ri =2; - if (ri > ro ) ri =ro; - brush->setRadii(ri,ro); - - - TUns32 x, y; - TUns32 xx, yy; - getPixelAddress(u, v, x, y); - xx = x - size/2; - yy = y - size/2; - IMG_PixmapRGBA32::getRGBAat(xx,yy,&mR,&mG,&mB,0); - for (int i= 0 ; i<(int)size;i++){ - for (int j= 0 ; j<(int)size;j++){ - float cR,cG,cB=0.0; - if (flags & 0x1) - IMG_PixmapRGBA32::getRGBAatTorus(xx+i,yy+j ,&cR,&cG,&cB,0); - else { - cR = mR; cG = mG; cB = mB; - IMG_PixmapRGBA32::getRGBAat(xx+i,yy+j ,&cR,&cG,&cB,0); - } - cR *= 255.0f; - cG *= 255.0f; - cB *= 255.0f; - brush->setRGBAat(i,j,&cR,&cG,&cB,NULL); - } - } - return(brush); -} - -void IMG_CanvasRGBA32::Smear(float uStart, float vStart, float uEnd, float vEnd, TUns32 size, float alpha, float aspect, bool torus) -{ - IMG_BrushRGBA32* brush = NULL; - float du,dv; - du = uEnd - uStart; - dv = vEnd - vStart; - - try { - brush = LiftBrush(uStart-du, vStart-dv, size, alpha, aspect, 1); - } - catch (...) { - /* no brush , no fun ! */ - return; - } - - if (brush) { - blendPixmap(uStart, vStart, uEnd, vEnd, *brush, torus); - delete(brush); - } -} - -void IMG_CanvasRGBA32::CloneAt(IMG_CanvasRGBA32* other,float u,float v,float cu,float cv,TUns32 size,float alpha,float aspect) -{ - TUns32 x, y; - TUns32 cx, cy; - TUns32 xx, yy; - getPixelAddress(u, v, x, y); - getPixelAddress(cu, cv, cx, cy); - - xx = (x-cx);// - size/2; - yy = (y-cy);// - size/2; - - if (other == NULL) return; - IMG_BrushRGBA32* brush = NULL; - try { - brush = other->LiftBrush(xx,yy,size,alpha,aspect,1); - } - catch (...) { - /* no brush , no fun ! */ - return; - } - if (brush){ - IMG_PixmapRGBA32::blendPixmap(x, y, *brush); - delete(brush); - } - -} - - - -int IMG_CanvasRGBA32::add_if_in(int x, int y,float &R,float &G,float &B, int &count, short flags) - -{ - float r,g,b= 0.0f; - if ((flags & 0x1) == 0) - { - if (IMG_PixmapRGBA32::getRGBAat(x,y,&r,&g,&b,0)) - { - R += r; - G += g; - B += b; - count++; - } -} - else { - - IMG_PixmapRGBA32::getRGBAatTorus(x,y,&r,&g,&b,0); - R += r; - G += g; - B += b; - count++; - } - - return 1; -} diff --git a/source/blender/img/intern/IMG_CanvasRGBA32.h b/source/blender/img/intern/IMG_CanvasRGBA32.h deleted file mode 100644 index 4c60e3522cc..00000000000 --- a/source/blender/img/intern/IMG_CanvasRGBA32.h +++ /dev/null @@ -1,102 +0,0 @@ -/** - * $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 6, 2001 - */ - -#ifndef _H_IMG_CanvasRGBA32 -#define _H_IMG_CanvasRGBA32 - -#include "IMG_PixmapRGBA32.h" -#include "IMG_BrushRGBA32.h" - -/** - * A IMG_PixmapRGBA32 pixmap that allows for drawing with a IMG_BrushRGBA32. - * @author Maarten Gribnau - * @date March 6, 2001 - */ - -class IMG_CanvasRGBA32 : public IMG_PixmapRGBA32 { -public: - int add_if_in(int x, int y, float &R, float &G, float &B, int &count, short flags); - void Smear(float uStart, float vStart, float uEnd, float vEnd ,TUns32 size, float alpha, float aspect, bool torus=false); - IMG_BrushRGBA32* LiftBrush(float u, float v, TUns32 size, float alpha, float aspect, short flags ); - IMG_BrushRGBA32* LiftBrush(TUns32 x, TUns32 y, TUns32 size, float alpha, float aspect, short flags); - void SoftenAt(float u, float v, TUns32 size, float alpha, float aspect, bool torus=false); - void CloneAt(IMG_CanvasRGBA32* other, float u, float v, float cu, float cv, TUns32 size, float alpha, float aspect); - /** - * Constructor. - * @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_CanvasRGBA32(TUns32 width, TUns32 height); - - /** - * Constructor. - * 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_CanvasRGBA32(void* image, TUns32 width, TUns32 height, TUns32 rowBytes); - - /** - * Blends a pixmap into this pixmap over a line. - * Repeatedly pastes the given pixmap centered at the given line into this pixmap. - * The alpha information in the given image is used to blend. - * @todo implement wrapping modes when the pixmap does not fit within the bounds. - * @todo update the drawing algorithm. - * @param x x-coordinate of the center location of the image. - * @param y y-coordinate of the center location of the image. - * @param pixmap the pixmap to blend - */ - virtual void blendPixmap(TUns32 xStart, TUns32 yStart, TUns32 xEnd, TUns32 yEnd, const IMG_PixmapRGBA32& pixmap, bool torus=false); - - /** - * Blends a pixmap into this pixmap over a line in (u,v) coordinates. - * Pastes the given pixmap centered at the given line into this pixmap. - * The alpha information in the given image is used to blend. - * @see IMG_PixmapRGBA32::blendPixmap(TUns32 xStart, TUns32 yStart, TUns32 yStart, TUns32 yEnd, const IMG_PixmapRGBA32& pixmap) - * @todo implement wrapping modes when the pixmap does not fit within the bounds. - * @param u u-coordinate of the center location of the image. - * @param v v-coordinate of the center location of the image. - * @param pixmap the pixmap to blend - */ - virtual void blendPixmap(float uStart, float vStart, float uEnd, float vEnd, const IMG_PixmapRGBA32& pixmap, bool torus=false); -}; - - -#endif // _H_IMG_CanvasRGBA32 - diff --git a/source/blender/img/intern/IMG_Color.h b/source/blender/img/intern/IMG_Color.h deleted file mode 100644 index 8343f55e4f0..00000000000 --- a/source/blender/img/intern/IMG_Color.h +++ /dev/null @@ -1,150 +0,0 @@ -/** - * $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 7, 2001 - */ - -#ifndef _H_IMG_Color -#define _H_IMG_Color - -class IMG_ColorRGBA; - -/** - * Implements a color with red, green and blue components. - * Components are stored as floats. - * @author Maarten Gribnau - * @date March 7, 2001 - */ - -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; -}; - - -/** - * Implements a color with red, green, blue and alpha components. - * Components are stored as floats. - * @author Maarten Gribnau - * @date March 6, 2001 - */ - -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 - diff --git a/source/blender/img/intern/IMG_Line.cpp b/source/blender/img/intern/IMG_Line.cpp deleted file mode 100644 index 4fb4fb83ca4..00000000000 --- a/source/blender/img/intern/IMG_Line.cpp +++ /dev/null @@ -1,37 +0,0 @@ -/** - * $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 ***** - */ -#include "IMG_Line.h" - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - diff --git a/source/blender/img/intern/IMG_Line.h b/source/blender/img/intern/IMG_Line.h deleted file mode 100644 index 0eb4a261d5f..00000000000 --- a/source/blender/img/intern/IMG_Line.h +++ /dev/null @@ -1,142 +0,0 @@ -/** - * $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 12, 2001 - */ - -#ifndef _H_IMG_Line -#define _H_IMG_Line - -#include "IMG_Types.h" -#include <math.h> - -/** - * A line from a start to an end point. - * Used for drawing lines in images. - * @author Maarten Gribnau - * @date March 6, 2001 - */ - -class IMG_Line { -public: - - /** - * Constructs a line with the given values. - * @param xs start point x-coordinate - * @param ys start point y-coordinate - * @param xe end point x-coordinate - * @param ye end point y-coordinate - */ - IMG_Line(TInt32 xs=0, TInt32 ys=0, TInt32 xe=0, TInt32 ye=0) - : m_xs(xs), m_ys(ys), m_xe(xe), m_ye(ye) {} - - /** - * Copy constructor. - * @param l line to copy - */ - IMG_Line(const IMG_Line& l) - : m_xs(l.m_xs), m_ys(l.m_ys), m_xe(l.m_xe), m_ye(l.m_ye) {} - - /** - * Destructor. - */ - virtual ~IMG_Line() {}; - - /** - * Access to line length. - * @return length of the line. - */ - virtual inline float getLength() const; - - /** - * Sets all members of the line. - * @param xs start point x-coordinate - * @param ys start point y-coordinate - * @param xe end point x-coordinate - * @param ye end point y-coordinate - */ - virtual inline void set(TInt32 xs, TInt32 ys, TInt32 xe, TInt32 ye); - - /** - * Returns whether this line is empty. - * Empty line are lines that have length==0. - * @return boolean value (true==empty line) - */ - virtual inline bool isEmpty() const; - - /** - * Returns point at given value for line parameter. - * Calculates the coordinates of a point on the line. - * @param t line parameter value (0<=t<=1) of the point requested. - * @param x x-coordinate of the point. - * @param y y-coordinate of the point. - */ - virtual inline void getPoint(float t, TInt32& x, TInt32& y) const; - - /** Start point x-coordinate */ - TInt32 m_xs; - /** Start point y-coordinate */ - TInt32 m_ys; - /** End point x-coordinate */ - TInt32 m_xe; - /** End point y-coordinate */ - TInt32 m_ye; -}; - - -inline float IMG_Line::getLength() const -{ - TInt32 dx = m_xe - m_xs; - TInt32 dy = m_ye - m_ys; - return ((float)::sqrt(((float)dx)*dx + ((float)dy)*dy)); -} - - -inline void IMG_Line::set(TInt32 xs, TInt32 ys, TInt32 xe, TInt32 ye) -{ - m_xs = xs; m_ys = ys; m_xe = xe; m_ye = ye; -} - - -inline bool IMG_Line::isEmpty() const -{ - return (getLength() <= 0); -} - - -inline void IMG_Line::getPoint(float t, TInt32& x, TInt32& y) const -{ - x = (TInt32) (((float)m_xs) + (t * (m_xe - m_xs))); - y = (TInt32) (((float)m_ys) + (t * (m_ye - m_ys))); -} - -#endif // _H_IMG_Line - diff --git a/source/blender/img/intern/IMG_MemPtr.h b/source/blender/img/intern/IMG_MemPtr.h deleted file mode 100644 index 772e7aa9886..00000000000 --- a/source/blender/img/intern/IMG_MemPtr.h +++ /dev/null @@ -1,115 +0,0 @@ -/** - * $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 - diff --git a/source/blender/img/intern/IMG_Pixmap.cpp b/source/blender/img/intern/IMG_Pixmap.cpp deleted file mode 100644 index dba2fddb4dd..00000000000 --- a/source/blender/img/intern/IMG_Pixmap.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/** - * $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 ***** - */ - -#include "IMG_Pixmap.h" - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -IMG_Pixmap::IMG_Pixmap() -{ - m_image = 0; - m_width = 0; - m_height = 0; - m_rowBytes = 0; - m_pixelSize = 0; - m_pixelType = kPixelTypeRGB32; -/* -#if OS_MACINTOSH - bitOrder = kQ3EndianBig; - byteOrder = kQ3EndianBig; -#else - bitOrder = kQ3EndianLittle; - byteOrder = kQ3EndianLittle; -#endif -*/ -} - - -IMG_Pixmap::~IMG_Pixmap() -{ -} diff --git a/source/blender/img/intern/IMG_Pixmap.h b/source/blender/img/intern/IMG_Pixmap.h deleted file mode 100644 index bde5b76e9b3..00000000000 --- a/source/blender/img/intern/IMG_Pixmap.h +++ /dev/null @@ -1,187 +0,0 @@ -/** - * $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 6, 2001 - */ - -#ifndef _H_IMG_Pixmap -#define _H_IMG_Pixmap - -#include "IMG_Types.h" -#include "IMG_Color.h" -#include "IMG_Rect.h" - - -/** - * Base class for pixmaps. Here a more elaborate description of the IMG_Pixmap class should be written. - * @author Maarten Gribnau - * @date March 6, 2001 - */ - -class IMG_Pixmap { -public: - /** - * The type of pixels. - * The type of pixels that are stored in this pixmap. - */ - typedef enum { - kPixelTypeRGB32 = 0, /**< R:8, G:8, B:8, Ignore:8 */ - kPixelTypeRGBA32 = 1, /**< R:8, G:8, B:8, Alpha:8 */ -// kPixelTypeRGB16 = 2, /**< Ignore:1, R:5, G:5, B:5 */ -// kPixelTypeRGBA16 = 3, /**< Alpha:1, R:5, G:5, B:5 */ -// kPixelTypeRGB16_565 = 4, /**< R:5, G:6, B:5 */ - kPixelTypeRGB24 = 5 /**< R:8, G:8, B:8 */ - } PixelType; - - /** - * Default constructor. - */ - IMG_Pixmap(); - - /** - * Destructor. - */ - virtual ~IMG_Pixmap(); - - /** - * Access to image data - * @return pointer to the image data - */ - inline void* getImage() const; - - /** - * Access to image width. - * @return width of the image - */ - inline TUns32 getWidth() const; - - /** - * Access to image height. - * @return height of the image - */ - inline TUns32 getHeight() const; - - /** - * Returns the bounds of the pixmap in a rectangle. - * @param bounds of the image - */ - inline void getBounds(IMG_Rect& r) const; - - /** - * Access to pixel type. - * @return the pixel type - */ - inline PixelType getPixelType() const; - - /** - * Clamps u, v coordinates between 0 and 1. - * @param u requested u-coordinate - * @param v requested v-coordinate - */ - inline void clampUV(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, TUns32& x, TUns32& 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 IMG_Rect& r, const IMG_ColorRGBA& c) = 0; - -protected: - /** Pointer to the image data */ - void* m_image; - /** Width of the image in pixels */ - TUns32 m_width; - /** Height of the image in pixels */ - TUns32 m_height; - /** Number of bytes for one row in the image. */ - TUns32 m_rowBytes; - /** Size in bits for one pixel */ - TUns32 m_pixelSize; - /** Type of pixels in this image. */ - PixelType m_pixelType; -// TQ3Endian m_bitOrder; -// TQ3Endian m_byteOrder; -}; - -inline void* IMG_Pixmap::getImage() const -{ - return m_image; -} - -inline TUns32 IMG_Pixmap::getWidth() const -{ - return m_width; -} - -inline TUns32 IMG_Pixmap::getHeight() const -{ - return m_height; -} - -inline void IMG_Pixmap::getBounds(IMG_Rect& r) const -{ - r.set(0, 0, m_width, m_height); -} - -inline IMG_Pixmap::PixelType IMG_Pixmap::getPixelType() const -{ - return m_pixelType; -} - -inline void IMG_Pixmap::clampUV(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, TUns32& x, TUns32& y) const -{ - //MAART TEMP! clampUV(u, v); - x = (TUns32)(((float)m_width) * u); - y = (TUns32)(((float)m_height) * v); -} - -#endif // _H_IMG_Pixmap - diff --git a/source/blender/img/intern/IMG_PixmapRGBA32.cpp b/source/blender/img/intern/IMG_PixmapRGBA32.cpp deleted file mode 100644 index 49b9348a4be..00000000000 --- a/source/blender/img/intern/IMG_PixmapRGBA32.cpp +++ /dev/null @@ -1,332 +0,0 @@ -/** - * $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 ***** - */ - -#include "IMG_PixmapRGBA32.h" - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -IMG_PixmapRGBA32::IMG_PixmapRGBA32(TUns32 width, TUns32 height) - : IMG_Pixmap(), m_mem(width * height) -{ - m_image = m_mem; - m_width = width; - m_height = height; - m_rowBytes = width * sizeof(TPixelRGBA32); - m_pixelSize = 8 * sizeof(TPixelRGBA32); - m_pixelType = kPixelTypeRGBA32; -} - - -IMG_PixmapRGBA32::IMG_PixmapRGBA32(void* image, TUns32 width, TUns32 height, TUns32 rowBytes) - : IMG_Pixmap(), m_mem(image, width * rowBytes) -{ - m_image = m_mem; - m_width = width; - m_height = height; - m_rowBytes = rowBytes; - m_pixelSize = 8 * sizeof(TPixelRGBA32); - m_pixelType = kPixelTypeRGBA32; -} - - -void IMG_PixmapRGBA32::fillRect(const IMG_Rect& r, const IMG_ColorRGB& c) -{ - IMG_Rect t_bnds (0, 0, m_width, m_height); // Bounds of this pixmap - IMG_Rect r_bnds (r); // Area to set - - // Determine visibility - TVisibility v = t_bnds.getVisibility(r_bnds); - if (v == kNotVisible) return; - if (v == 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 (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 (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; - TUns8* srcBytes = (TUns8*) &src; - - // Set the pixels in the destination rectangle - for (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 (TInt32 x = r.m_l; x < r.m_r; x++) { - // Set the new pixel value (retain current alpha) - ((TUns8*)desPtr)[bi_r] = srcBytes[bi_r]; - ((TUns8*)desPtr)[bi_g] = srcBytes[bi_g]; - ((TUns8*)desPtr)[bi_b] = srcBytes[bi_b]; - desPtr++; - } - } -#endif -} - - -void IMG_PixmapRGBA32::fillRect(const IMG_Rect& r, const IMG_ColorRGBA& c) -{ - IMG_Rect t_bnds (0, 0, m_width, m_height); // Bounds of this pixmap - IMG_Rect r_bnds (r); // Area to set - - // Determine visibility - TVisibility v = t_bnds.getVisibility(r_bnds); - if (v == kNotVisible) return; - if (v == 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 (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 (TInt32 x = r.m_l; x < r.m_r; x++) { - *(desPtr++) = pixel; - } - } -} - - -void IMG_PixmapRGBA32::setPixmap(TUns32 x, TUns32 y, const IMG_PixmapRGBA32& pixmap, const IMG_Rect& bnds) -{ - IMG_Rect i_bnds (bnds); // Bounds of input pixmap - IMG_Rect t_bnds (0, 0, m_width, m_height); // Bounds of this pixmap - IMG_Rect p_bnds (bnds); // Bounds of the paste area - p_bnds.setCenter(x, y); - - // 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 - TVisibility v = t_bnds.getVisibility(p_bnds); - if (v == kNotVisible) return; - if (v == 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; - } - TInt32 d = p_bnds.getWidth(); - if (p_bnds.m_r > d) { - i_bnds.m_t -= d - p_bnds.m_r; - p_bnds.m_t = d; - } - d = p_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 (TInt32 r = 0; r < p_bnds.getHeight(); r++) { - // Park pixel pointers at the start pixels - TPixelPtr srcPtr = 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(TUns32 x, TUns32 y, const IMG_PixmapRGBA32& pixmap, const IMG_Rect& bnds) -{ - IMG_Rect i_bnds (bnds); // Bounds of input pixmap - IMG_Rect t_bnds (0, 0, m_width, m_height); // Bounds of this pixmap - IMG_Rect p_bnds (bnds); // Bounds of the paste area - p_bnds.setCenter(x, y); - - // 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 - TVisibility v = t_bnds.getVisibility(p_bnds); - if (v == kNotVisible) return; - if (v == 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; - } - 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 = pixmap.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++; - } - } -} - - -void IMG_PixmapRGBA32::blendPixmap(float u, float v, const IMG_PixmapRGBA32& pixmap) -{ - TUns32 x, y; - getPixelAddress(u, v, x, y); - blendPixmap(x, y, pixmap); -} - -int IMG_PixmapRGBA32::getRGBAat(TUns32 x, TUns32 y, float *R, float *G, float *B, float *A) const -{ - TPixelPtr srcPtr = 0; - if ((x >= m_width) || (y >= m_height) ) return 0; - srcPtr = getPixelPtr(x,y); - if (srcPtr){ - IMG_ColorRGBA srcColor; - getColor(*srcPtr, srcColor); - if(R) *R = srcColor.m_r; - if(G) *G = srcColor.m_g; - if(B) *B = srcColor.m_b; - if(A) *A = srcColor.m_a; - return 1; - } - return 0; - -} - -int IMG_PixmapRGBA32::getRGBAatTorus(int x, int y, float *R, float *G, float *B, float *A) -{ - x %= m_width; - y %= m_height; - return getRGBAat(x,y,R,G,B,A); -} - -void IMG_PixmapRGBA32::setRGBAat(TUns32 x, TUns32 y, float *R, float *G, float *B, float *A) -{ - TPixelPtr desPtr = 0; - desPtr = getPixelPtr(x,y); - if (desPtr){ - if(R) ((TUns8*)desPtr)[bi_r] = (TUns8)(*R); - if(G) ((TUns8*)desPtr)[bi_g] = (TUns8)(*G); - if(B) ((TUns8*)desPtr)[bi_b] = (TUns8)(*B); - if(A) ((TUns8*)desPtr)[bi_a] = (TUns8)(*A); - - - } - -} - -void IMG_PixmapRGBA32::blendPixmapTorus(TUns32 x, TUns32 y,const IMG_PixmapRGBA32 &pixmap) -{ - float sR,sG,sB,sA, bR,bG,bB,bA; - IMG_Rect bnds; - pixmap.getBounds(bnds); - int ym = bnds.getHeight(); - int xm = bnds.getWidth(); - for (int xa = 0; xa < xm; xa ++) - for (int ya = 0; ya < ym; ya ++){ - int xt = (xa-xm/2 + x) % (m_width ); - int yt = (ya-xm/2 + y) % (m_height); - - getRGBAat(xt,yt,&sR,&sG,&sB,&sA); - - pixmap.getRGBAat(xa,ya,&bR,&bG,&bB,&bA); - - sR = sR*(1-bA) + bR*bA; - sG = sG*(1-bA) + bG*bA; - sB = sB*(1-bA) + bB*bA; - - sR *= 255.0f; - sG *= 255.0f; - sB *= 255.0f; - - setRGBAat(xt,yt,&sR,&sG,&sB,0); - } -} diff --git a/source/blender/img/intern/IMG_PixmapRGBA32.h b/source/blender/img/intern/IMG_PixmapRGBA32.h deleted file mode 100644 index 0c9352c260f..00000000000 --- a/source/blender/img/intern/IMG_PixmapRGBA32.h +++ /dev/null @@ -1,267 +0,0 @@ -/** - * $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 6, 2001 - */ - -#ifndef _H_IMG_PixmapRGBA32 -#define _H_IMG_PixmapRGBA32 - -#include "IMG_Pixmap.h" -#include "IMG_MemPtr.h" - -/** - * 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 - */ - -class IMG_PixmapRGBA32 : public IMG_Pixmap { -public: - virtual void blendPixmapTorus(TUns32 x, TUns32 y,const IMG_PixmapRGBA32& pixmap); - void setRGBAat(TUns32 x, TUns32 y, float* R, float* G, float* B,float* A); - int getRGBAat(TUns32 x, TUns32 y, float* R, float* G, float* B,float* A) const; - int getRGBAatTorus(int x, int y, float *R, float *G, float *B, float *A); - - /** - * The pixel type in this pixmap. - */ - typedef 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; - - /** "Save" memory pointer. */ - IMG_MemPtr<TPixelRGBA32> m_mem; - - /** - * 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(TUns32 width, 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, TUns32 width, TUns32 height, 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 IMG_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 IMG_Rect& r, const IMG_ColorRGBA& c); - - /** - * Pastes a pixmap into this pixmap. - * Pastes the given pixmap centered at the given coordinates into this pixmap. - * Ignores the alpha information, this is pasted too. - * @todo implement wrapping modes when the pixmap does not fit within the bounds. - * @param x x-coordinate of the center location of the image. - * @param y y-coordinate of the center location of the image. - * @param pixmap the pixmap to paste. - */ - inline virtual void setPixmap(TUns32 x, TUns32 y, const IMG_PixmapRGBA32& pixmap); - - /** - * Pastes an area in 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 too. - * @todo implement wrapping modes when the pixmap does not fit within the bounds. - * @param x x-coordinate of the center location of the image. - * @param y y-coordinate of the center location of the image. - * @param pixmap the pixmap to paste. - * @param bnds the bounds of the area of the pixmap to paste. - */ - virtual void setPixmap(TUns32 x, TUns32 y, const IMG_PixmapRGBA32& pixmap, const IMG_Rect& bnds); - - /** - * Blends a pixmap into this pixmap. - * Blends the given pixmap centered at the given coordinates into this pixmap. - * The alpha information in the given image is used to blend. - * @todo implement wrapping modes when the pixmap does not fit within the bounds. - * @param x x-coordinate of the center location of the image. - * @param y y-coordinate of the center location of the image. - * @param pixmap the pixmap to blend. - */ - virtual void blendPixmap(TUns32 x, TUns32 y, const IMG_PixmapRGBA32& pixmap); - - /** - * 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. - * @todo implement wrapping modes when the pixmap does not fit within the bounds. - * @param x x-coordinate of the center location of the image. - * @param y y-coordinate of the center location of the image. - * @param pixmap the pixmap to blend. - * @param bnds the bounds of the area of the pixmap to blend. - */ - virtual void blendPixmap(TUns32 x, TUns32 y, const IMG_PixmapRGBA32& pixmap, const IMG_Rect& bnds); - - /** - * Blends a pixmap into this pixmap at (u,v) coordinates. - * Pastes the given pixmap centered at the given coordinates into this pixmap. - * The alpha information in the given image is used to blend. - * @see IMG_PixmapRGBA32::blendPixmap(TUns32 x, TUns32 y, const IMG_PixmapRGBA32& pixmap) - * @todo implement wrapping modes when the pixmap does not fit within the bounds. - * @param u u-coordinate of the center location of the image. - * @param v v-coordinate of the center location of the image. - * @param pixmap the pixmap to blend - */ - virtual void blendPixmap(float u, float v, const IMG_PixmapRGBA32& pixmap); - -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(TUns32 x, 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; -}; - -inline void IMG_PixmapRGBA32::setPixmap(TUns32 x, TUns32 y, const IMG_PixmapRGBA32& pixmap) -{ - IMG_Rect bnds; - pixmap.getBounds(bnds); - setPixmap(x, y, pixmap, bnds); -} - -inline void IMG_PixmapRGBA32::blendPixmap(TUns32 x, TUns32 y, const IMG_PixmapRGBA32& pixmap) -{ - IMG_Rect bnds; - pixmap.getBounds(bnds); - blendPixmap(x, y, pixmap, bnds); -} - -inline IMG_PixmapRGBA32::TPixelPtr IMG_PixmapRGBA32::getPixelPtr(TUns32 x, TUns32 y) const -{ - return (TPixelPtr) (((TUns8*)m_image) + (y*m_rowBytes) + (x*4)); -} - - -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; - TUns8* bytes = (TUns8*)&pixel; - bytes[bi_r] = (TUns8)(((float) 0xFF) * c.m_r); - bytes[bi_g] = (TUns8)(((float) 0xFF) * c.m_g); - bytes[bi_b] = (TUns8)(((float) 0xFF) * c.m_b); - bytes[bi_a] = (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 - TUns8* bytes = (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 - diff --git a/source/blender/img/intern/IMG_Rect.cpp b/source/blender/img/intern/IMG_Rect.cpp deleted file mode 100644 index c2e7bfc89c6..00000000000 --- a/source/blender/img/intern/IMG_Rect.cpp +++ /dev/null @@ -1,132 +0,0 @@ -/** - * $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 ***** - */ - -#include "IMG_Rect.h" - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -TVisibility IMG_Rect::getVisibility(IMG_Rect& r) const -{ - bool lt = isInside(r.m_l, r.m_t); - bool rt = isInside(r.m_r, r.m_t); - bool lb = isInside(r.m_l, r.m_b); - bool rb = isInside(r.m_r, r.m_b); - TVisibility v; - if (lt && rt && lb && rb) { - // All points inside, rectangle is inside this - v = kFullyVisible; - } - else if (!(lt || rt || lb || rb)) { - // None of the points inside - // Check to see whether the rectangle is larger than this one - if ((r.m_l < m_l) && (r.m_t < m_t) && (r.m_r > m_r) && (r.m_b > m_b)) { - v = kPartiallyVisible; - } - else { - v = kNotVisible; - } - } - else { - // Some of the points inside, rectangle is partially inside - v = kPartiallyVisible; - } - return v; -} - -TVisibility IMG_Rect::getVisibility(IMG_Line& l) const -{ - bool s = isInside(l.m_xs, l.m_ys); - bool e = isInside(l.m_xe, l.m_ye); - TVisibility v; - if (s && e) { - v = kFullyVisible; - } - else if (s || e) { - v = kPartiallyVisible; - } - else { - v = kNotVisible; - } - return v; -} - - -void IMG_Rect::setCenter(TInt32 cx, TInt32 cy) -{ - TInt32 offset = cx - (m_l + (m_r - m_l)/2); - m_l += offset; - m_r += offset; - offset = cy - (m_t + (m_b - m_t)/2); - m_t += offset; - m_b += offset; -} - -void IMG_Rect::setCenter(TInt32 cx, TInt32 cy, TInt32 w, TInt32 h) -{ - long w_2, h_2; - - w_2 = w >> 1; - h_2 = h >> 1; - m_l = cx - w_2; - m_t = cy - h_2; - m_r = m_l + w; - m_b = m_t + h; -} - -bool IMG_Rect::clip(IMG_Rect& r) const -{ - bool clipped = false; - if (r.m_l < m_l) { - r.m_l = m_l; - clipped = true; - } - if (r.m_t < m_t) { - r.m_t = m_t; - clipped = true; - } - if (r.m_r > m_r) { - r.m_r = m_r; - clipped = true; - } - if (r.m_b > m_b) { - r.m_b = m_b; - clipped = true; - } - return clipped; -} - -bool IMG_Rect::clip(IMG_Line& l) const -{ - bool clipped = false; - return clipped; -} diff --git a/source/blender/img/intern/IMG_Rect.h b/source/blender/img/intern/IMG_Rect.h deleted file mode 100644 index 980c96f11aa..00000000000 --- a/source/blender/img/intern/IMG_Rect.h +++ /dev/null @@ -1,201 +0,0 @@ -/** - * $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 7, 2001 - */ - -#ifndef _H_IMG_Rect -#define _H_IMG_Rect - -#include "IMG_Types.h" -#include "IMG_Line.h" - -/** - * Implements rectangle functionality. - * Used for bounds in images. - * The four extreme coordinates are stored as left, top, right and bottom. - * left is assumed to be smaller than or equal to right. - * top is assumed to be smaller than or equal to bottom. - * @author Maarten Gribnau - * @date March 6, 2001 - */ - -class IMG_Rect { -public: - - /** - * Constructs a rectangle with the given values. - * @param l requested left coordinate of the rectangle - * @param t requested top coordinate of the rectangle - * @param r requested right coordinate of the rectangle - * @param b requested bottom coordinate of the rectangle - */ - IMG_Rect(TInt32 l=0, TInt32 t=0, TInt32 r=0, TInt32 b=0) - : m_l(l), m_t(t), m_r(r), m_b(b) {} - - /** - * Copy constructor. - * @param r rectangle to copy - */ - IMG_Rect(const IMG_Rect& r) - : m_l(r.m_l), m_t(r.m_t), m_r(r.m_r), m_b(r.m_b) {} - - /** - * Destructor. - */ - virtual ~IMG_Rect() {}; - - /** - * Access to rectangle width. - * @return width of the rectangle - */ - virtual inline TInt32 getWidth() const; - - /** - * Access to rectangle height. - * @return height of the rectangle - */ - virtual inline TInt32 getHeight() const; - - /** - * Sets all members of the rectangle. - * @param l requested left coordinate of the rectangle - * @param t requested top coordinate of the rectangle - * @param r requested right coordinate of the rectangle - * @param b requested bottom coordinate of the rectangle - */ - virtual inline void set(TInt32 l, TInt32 t, TInt32 r, TInt32 b); - - /** - * Returns whether this rectangle is empty. - * Empty rectangles are rectangles that have width==0 and/or height==0. - * @return boolean value (true==empty rectangle) - */ - virtual inline bool isEmpty() const; - - /** - * Returns whether the point is inside this rectangle. - * Point on the boundary is considered inside. - * @param x x-coordinate of point to test. - * @param y y-coordinate of point to test. - * @return boolean value (true if point is inside). - */ - virtual inline bool isInside(TInt32 x, TInt32 y) const; - - /** - * Returns whether the rectangle is inside this rectangle. - * @param r rectangle to test. - * @return visibility (not, partially or fully visible). - */ - virtual TVisibility getVisibility(IMG_Rect& r) const; - - /** - * Returns whether the line is inside this rectangle. - * @param l line to test. - * @return visibility (not, partially or fully visible). - */ - virtual TVisibility getVisibility(IMG_Line& l) const; - - /** - * Sets rectangle members. - * Sets rectangle members such that it is centered at the given location. - * @param cx requested center x-coordinate of the rectangle - * @param cy requested center y-coordinate of the rectangle - */ - virtual void setCenter(TInt32 cx, TInt32 cy); - - /** - * Sets rectangle members. - * Sets rectangle members such that it is centered at the given location, - * with the width requested. - * @param cx requested center x-coordinate of the rectangle - * @param cy requested center y-coordinate of the rectangle - * @param w requested width of the rectangle - * @param h requested height of the rectangle - */ - virtual void setCenter(TInt32 cx, TInt32 cy, TInt32 w, TInt32 h); - - /** - * Clips a rectangle. - * Updates the rectangle given such that it will fit within this one. - * This can result in an empty rectangle. - * @param r the rectangle to clip - * @return whether clipping has occurred - */ - virtual bool clip(IMG_Rect& r) const; - - /** - * Clips a line. - * Updates the line given such that it will fit within this rectangle. - * This can result in an empty line. - * @param l the line to clip - * @return whether clipping has occurred - */ - virtual bool clip(IMG_Line& l) const; - - /** Left coordinate of the rectangle */ - TInt32 m_l; - /** Top coordinate of the rectangle */ - TInt32 m_t; - /** Right coordinate of the rectangle */ - TInt32 m_r; - /** Bottom coordinate of the rectangle */ - TInt32 m_b; -}; - - -inline TInt32 IMG_Rect::getWidth() const -{ - return m_r - m_l; -} - -inline TInt32 IMG_Rect::getHeight() const -{ - return m_b - m_t; -} - -inline void IMG_Rect::set(TInt32 l, TInt32 t, TInt32 r, TInt32 b) -{ - m_l = l; m_t = t; m_r = r; m_b = b; -} - -inline bool IMG_Rect::isEmpty() const -{ - return (getWidth() == 0) || (getHeight() == 0); -} - -inline bool IMG_Rect::isInside(TInt32 x, TInt32 y) const -{ - return (x >= m_l) && (x <= m_r) && (y >= m_t) && (y <= m_b); -} - -#endif // _H_IMG_Rect - diff --git a/source/blender/img/intern/IMG_Types.h b/source/blender/img/intern/IMG_Types.h deleted file mode 100644 index d4988d39dc6..00000000000 --- a/source/blender/img/intern/IMG_Types.h +++ /dev/null @@ -1,49 +0,0 @@ -/** - * $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 7, 2001 - */ - -#ifndef _H_IMG_Types -#define _H_IMG_Types - -typedef int TInt32; -typedef unsigned char TUns8; -typedef unsigned int TUns32; - -typedef enum { - kNotVisible = 0, - kPartiallyVisible, - kFullyVisible -} TVisibility; - -#endif // _H_IMG_Types - diff --git a/source/blender/img/intern/Makefile b/source/blender/img/intern/Makefile deleted file mode 100644 index b4ccd4b14e9..00000000000 --- a/source/blender/img/intern/Makefile +++ /dev/null @@ -1,49 +0,0 @@ -# -# $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 ***** -# -# - -LIBNAME = img -DIR = $(OCGDIR)/blender/$(LIBNAME) - -include nan_compile.mk - -ifeq ($(OS),$(findstring $(OS), "beos darwin freebsd linux openbsd solaris windows")) - CFLAGS += -funsigned-char -endif - -CFLAGS += $(LEVEL_1_C_WARNINGS) - -# path to SDNA types -CPPFLAGS += -I../../makesdna -# path to our own external headerfiles -CPPFLAGS += -I.. - |