You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
(67) |
Apr
(455) |
May
(202) |
Jun
(136) |
Jul
(203) |
Aug
(60) |
Sep
(88) |
Oct
(64) |
Nov
(56) |
Dec
(78) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(271) |
Feb
(207) |
Mar
|
Apr
|
May
(167) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Ralph T. <ra...@us...> - 2006-01-24 08:42:27
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/future/widgets/sources/fltk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12347/adobe-source/adobe/future/widgets/sources/fltk Modified Files: ui_core_implementation.cpp Log Message: Update of FLTK implementation to compile with recent ASL changes. Bugs with faulty baseline and placing widgets more often than required have been fixed, as well as a fix for popup placement (when the popup has a label). Index: ui_core_implementation.cpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/future/widgets/sources/fltk/ui_core_implementation.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ui_core_implementation.cpp 7 Nov 2005 18:08:58 -0000 1.4 --- ui_core_implementation.cpp 24 Jan 2006 08:42:18 -0000 1.5 *************** *** 13,16 **** --- 13,18 ---- #include "display.hpp" + //#include "report_exception.hpp" + #include <adobe/value.hpp> #include <adobe/future/memory.hpp> *************** *** 298,302 **** geometry_m = geometry; position_m = position; ! window_m->resize(position_m.x_m, position_m.y_m, geometry.width(), geometry.height()); } --- 300,304 ---- geometry_m = geometry; position_m = position; ! window_m->resize(window_m->x(), window_m->y(),//position_m.x_m, position_m.y_m, geometry.width(), geometry.height()); } *************** *** 307,311 **** geometry_m.width() = size.x_m; geometry_m.height() = size.y_m; ! window_m->resize(position_m.x_m, position_m.y_m, geometry_m.width(), geometry_m.height()); } --- 309,313 ---- geometry_m.width() = size.x_m; geometry_m.height() = size.y_m; ! window_m->resize(window_m->x(), window_m->y(),//position_m.x_m, position_m.y_m, geometry_m.width(), geometry_m.height()); } *************** *** 347,359 **** control_t::control_t(const control_t& rhs) : control_m(0), theme_m(rhs.theme_m), widget_type_m(rhs.widget_type_m) {} ! control_t::~control_t() ! { // ! // All child widgets get deleted by the parent, so we ! // only have to delete something if it is a root parent ! // (which seems unlikely, as only windows may be root ! // parents). // ! if (control_m && !control_m->parent()) delete control_m; } extents_t control_t::best_bounds() --- 349,363 ---- control_t::control_t(const control_t& rhs) : control_m(0), theme_m(rhs.theme_m), widget_type_m(rhs.widget_type_m) {} ! control_t::~control_t() { ! if (!control_m) return; // ! // We delete ourselves, but not any of our children (which ! // is the default in FLTK). // ! fltk::Group* g (dynamic_cast<fltk::Group*>(control_m)); ! if (g) { ! for (int i = 0; i < g->children(); i++ ) g->remove(i); ! } ! delete control_m; } extents_t control_t::best_bounds() *************** *** 414,429 **** control_m->box()->inset(unit); // ! // Resize the widget to be big enough to contain the label ! // and it's box. ! // ! control_m->resize(100 - unit.w() + result.width(), ! 100 - unit.h() + result.height()); ! // ! // Put the new size into the result, along with the baseline ! // calculated by the widget. // ! result.width() = control_m->w(); ! result.height() = control_m->h(); ! result.vertical().poi_m.push_back(control_m->baseline_y()); // // All calculated. --- 418,431 ---- control_m->box()->inset(unit); // ! // Previously we pushed the calculated dimensions into the ! // widget so that the widget would calculate it's baseline. ! // Unfortunately, the widget frequently calculated the wrong ! // baseline, and it made the GUI look funny as things often ! // got placed and then moved... Now we just make up a fake ! // baseline and things only get placed once. // ! result.width() = 100 - unit.w() + result.width(); ! result.height() = 100 - unit.h() + result.height(); ! result.vertical().poi_m.push_back(result.height() / 2); // // All calculated. *************** *** 650,654 **** for (; first != last; ++first) { ! fltk::Widget* item = new fltk::Widget(0, 0, 10, 10); item->copy_label(first->name_m.c_str()); g->add(item); --- 652,656 ---- for (; first != last; ++first) { ! fltk::Widget* item = new fltk::Widget(0, 0, 0, 0); item->copy_label(first->name_m.c_str()); g->add(item); *************** *** 673,680 **** // calculating the height and frame location. // ! extents_t result; ! result.height() = 30; ! result.vertical().frame_m.first = 35; ! return result; } void tab_group_t::implementation_t::set_value(const value_t& new_value) --- 675,683 ---- // calculating the height and frame location. // ! // extents_t result; ! // result.height() = 30; ! // result.vertical().frame_m.first = 35; ! // return result; ! return _super::best_bounds(); } void tab_group_t::implementation_t::set_value(const value_t& new_value) *************** *** 846,850 **** } void button_t::implementation_t::set_contributing( ! modifiers_t modifiers, const dictionary_t& value) { assert(control_m); --- 849,853 ---- } void button_t::implementation_t::set_contributing( ! modifiers_t modifiers, const std::pair<dictionary_t, array_t>& value) { assert(control_m); *************** *** 1670,1673 **** --- 1673,1693 ---- return result; } + void popup_t::implementation_t::set_bounds( + const point_2d_t& position, const extents_t& geometry) + { + // + // If we have a text label then we need to take the + // hint (the horizontal poi) that we set in best_bounds. + // + if (!using_label_m) return _super::set_bounds(position, geometry); + point_2d_t repos(position); + extents_t regeo(geometry); + if (geometry.horizontal().poi_m.size()) { + repos.x_m += geometry.horizontal().poi_m[0]; + regeo.width() -= geometry.horizontal().poi_m[0]; + } + _super::set_bounds(repos, regeo); + } + void popup_t::implementation_t::set_static_disabled( bool is_static_disabled) *************** *** 1707,1713 **** menu_items_t::iterator first(menu_items_m.begin()); menu_items_t::iterator last(menu_items_m.end()); ! for (; first != last; ++first) if((*first).second == item) choice->value(first - menu_items_m.begin()); } void popup_t::implementation_t::select_with_text( --- 1727,1734 ---- menu_items_t::iterator first(menu_items_m.begin()); menu_items_t::iterator last(menu_items_m.end()); ! for (; first != last; first++) { if((*first).second == item) choice->value(first - menu_items_m.begin()); + } } void popup_t::implementation_t::select_with_text( |
From: Ralph T. <ra...@us...> - 2006-01-24 08:42:25
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/future/widgets/headers/fltk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12347/adobe-source/adobe/future/widgets/headers/fltk Modified Files: ui_core_implementation.hpp Log Message: Update of FLTK implementation to compile with recent ASL changes. Bugs with faulty baseline and placing widgets more often than required have been fixed, as well as a fix for popup placement (when the popup has a label). Index: ui_core_implementation.hpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/future/widgets/headers/fltk/ui_core_implementation.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ui_core_implementation.hpp 6 Jan 2006 18:02:58 -0000 1.5 --- ui_core_implementation.hpp 24 Jan 2006 08:42:18 -0000 1.6 *************** *** 187,191 **** void set_value(modifiers_t modifiers, const value_t& value); void set_contributing(modifiers_t modifiers, ! const dictionary_t& value); virtual void callback(); --- 187,191 ---- void set_value(modifiers_t modifiers, const value_t& value); void set_contributing(modifiers_t modifiers, ! const std::pair<dictionary_t, array_t>& value); virtual void callback(); *************** *** 396,399 **** --- 396,401 ---- const std::string& name); virtual extents_t best_bounds(); + void set_bounds(const point_2d_t& position, + const extents_t& geometry); void set_static_disabled(bool is_static_disabled); void add_menu_item(const std::string& name, |
From: Ralph T. <ra...@us...> - 2006-01-24 05:01:37
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/future/widgets/sources/win In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9556/adobe-source/adobe/future/widgets/sources/win Modified Files: ui_core_implementation.cpp Log Message: Resolved the bug where the combo box drop down would take up the entire screen if there were enough elements. It turned out that this behavior was being explicitly set (!); now we will show enough room for all of the elements up to a maximum of 10 (at which point you will get a scrollbar). This still doesn't verify that the specified size can fit on the screen (e.g.: Windows PocketPC might have trouble), and uses a fixed value. Index: ui_core_implementation.cpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/future/widgets/sources/win/ui_core_implementation.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** ui_core_implementation.cpp 24 Jan 2006 02:47:19 -0000 1.9 --- ui_core_implementation.cpp 24 Jan 2006 05:01:27 -0000 1.10 *************** *** 39,42 **** --- 39,44 ---- //End yuck + #include <algorithm> + /****************************************************************************************************/ *************** *** 3375,3379 **** control_m = ::CreateWindowEx( WS_EX_COMPOSITED, WC_COMBOBOX, NULL, ! WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST | WS_TABSTOP, 0, 0, width, height, invisible_parent_m, --- 3377,3381 ---- control_m = ::CreateWindowEx( WS_EX_COMPOSITED, WC_COMBOBOX, NULL, ! WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST | WS_TABSTOP | WS_VSCROLL, 0, 0, width, height, invisible_parent_m, *************** *** 3565,3570 **** geometry_m.width() -= width; } long old_height = geometry_m.height(); ! geometry_m.height() += static_cast<long>((menu_items_m.size() + 1) * geometry_m.height()); _super::set_bounds(position, geometry_m); geometry_m.height() = old_height; --- 3567,3582 ---- geometry_m.width() -= width; } + // + // On Win32, you give a combo box the height it should have + // when it's fully extended (which seems a bit like a hackish + // implementation detail poking through). Here we ensure that + // the combo box is maximally the size of 10 elements (so that + // we don't go over the edges of the screen if we have a huge + // number of elements). + // + // REVISIT (ralpht) : fixed value. + // long old_height = geometry_m.height(); ! geometry_m.height() += std::min<long>(static_cast<long>((menu_items_m.size() + 1)), 10) * geometry_m.height(); _super::set_bounds(position, geometry_m); geometry_m.height() = old_height; |
From: Ralph T. <ra...@us...> - 2006-01-24 03:00:51
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/begin/examples In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv354/adobe-source/adobe/test/begin/examples Added Files: big_popup.adm big_popup.eve Log Message: This big_popup example shows a bug on the Win32 implementation of ui-core: when there are more items in a popup than fit on the screen, they are not shown (a scrollbar should be shown with the items). Thomas Witt brought this issue to my attention and I am currently working on a fix. --- NEW FILE: big_popup.eve --- /* Example that puts a lot of items into a popup. Copyright 2006 (C) Ralph Thomas (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ dialog(name: "Big popup") { row() { popup( name: "Choose:", bind: @selection, items: [ { name: "Item #1", value: @a }, { name: "Item #2", value: @b }, { name: "Item #3", value: @c }, { name: "Item #4", value: @d }, { name: "Item #5", value: @e }, { name: "Item #6", value: @f }, { name: "Item #7", value: @h }, { name: "Item #8", value: @i }, { name: "Item #9", value: @j }, { name: "Item #10", value: @k }, { name: "Item #11", value: @l }, { name: "Item #12", value: @m }, { name: "Item #13", value: @n }, { name: "Item #14", value: @o }, { name: "Item #15", value: @p }, { name: "Item #16", value: @q }, { name: "Item #17", value: @r }, { name: "Item #18", value: @s }, { name: "Item #19", value: @t }, { name: "Item #20", value: @u }, { name: "Item #21", value: @v }, { name: "Item #221", value: @w }, { name: "Item #231", value: @x }, { name: "Item #241", value: @y }, { name: "Item #251", value: @z }, { name: "Item #261", value: @aa }, { name: "Item #271", value: @ab }, { name: "Item #281", value: @ac }, { name: "Item #291", value: @ad }, { name: "Item #301", value: @ae }, { name: "Item #31", value: @af }, { name: "Item #321", value: @ag }, { name: "Item #331", value: @ah }, { name: "Item #341", value: @ai }, { name: "Item #351", value: @aj }, { name: "Item #361", value: @ak }, { name: "Item #371", value: @al }, { name: "Item #381", value: @am }, { name: "Item #391", value: @an }, { name: "Item #40", value: @ao }, { name: "Item #41", value: @ap }, { name: "Item #421", value: @aq }, { name: "Item #431", value: @ar }, { name: "Item #441", value: @as }, { name: "Item #451", value: @at }, { name: "Item #461", value: @au }, { name: "Item #571", value: @av }, { name: "Item #431", value: @aw }, { name: "Item #341", value: @ax }, { name: "Item #2431", value: @ay }, { name: "Item #2341", value: @az }, { name: "Item #5441", value: @aaa }, { name: "Item #671", value: @aab }, { name: "Item #4311", value: @aac }, { name: "Item #31251", value: @aad }, { name: "Item #6554351", value: @aae }, { name: "Item #423521", value: @aaf }, { name: "Item #523653351", value: @aag }, { name: "Item #541541", value: @aah }, { name: "Item #5325321", value: @aai }, { name: "Item #5231", value: @aaj }, { name: "Item #235231", value: @aak }, { name: "Item #235231", value: @aal }, { name: "Item #asf1", value: @aam }, { name: "Item #541", value: @aan }, { name: "Item #24231", value: @aao }, { name: "Item #421", value: @aq }, { name: "Item #431", value: @ar }, { name: "Item #441", value: @as }, { name: "Item #451", value: @at }, { name: "Item #461", value: @au }, { name: "Item #571", value: @av }, { name: "Item #431", value: @aw }, { name: "Item #341", value: @ax }, { name: "Item #2431", value: @ay }, { name: "Item #2341", value: @az }, { name: "Item #5441", value: @aaa }, { name: "Item #671", value: @aab }, { name: "Item #4311", value: @aac }, { name: "Item #31251", value: @aad }, { name: "Item #6554351", value: @aae }, { name: "Item #423521", value: @aaf }, { name: "Item #523653351", value: @aag }, { name: "Item #541541", value: @aah }, { name: "Item #5325321", value: @aai }, { name: "Item #5231", value: @aaj }, { name: "Item #235231", value: @aak }, { name: "Item #235231", value: @aal }, { name: "Item #asf1", value: @aam }, { name: "Item #541", value: @aan }, { name: "Item #421", value: @aq }, { name: "Item #431", value: @ar }, { name: "Item #441", value: @as }, { name: "Item #451", value: @at }, { name: "Item #461", value: @au }, { name: "Item #571", value: @av }, { name: "Item #431", value: @aw }, { name: "Item #341", value: @ax }, { name: "Item #2431", value: @ay }, { name: "Item #2341", value: @az }, { name: "Item #5441", value: @aaa }, { name: "Item #671", value: @aab }, { name: "Item #4311", value: @aac }, { name: "Item #31251", value: @aad }, { name: "Item #6554351", value: @aae }, { name: "Item #423521", value: @aaf }, { name: "Item #523653351", value: @aag }, { name: "Item #541541", value: @aah }, { name: "Item #5325321", value: @aai }, { name: "Item #5231", value: @aaj }, { name: "Item #235231", value: @aak }, { name: "Item #235231", value: @aal }, { name: "Item #asf1", value: @aam }, { name: "Item #541", value: @aan } ] ); button(name: "<xstr id='ok'>OK</xstr>", action: @ok, bind: @selection); } } --- NEW FILE: big_popup.adm --- /* Example that puts a lot of items into a popup. Copyright 2006 (C) Ralph Thomas (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ sheet big_popup { interface: selection: @c ; } |
From: Ralph T. <ra...@us...> - 2006-01-24 02:47:29
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/future/widgets/sources/win In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29416/adobe-source/adobe/future/widgets/sources/win Modified Files: ui_core_implementation.cpp Log Message: Controls inside groups now get events passed back to them (by the group's window procedure). The group now uses the container_window_proc which uses event_dispatcher_t to look up a control_t* from a child_id (part of the WM_NOTIFY and WM_COMMAND messages). It then passes the message to the control_t. Previously only some WM_COMMAND messages were being passed back which was resulting in popup widgets not being notified when they were changed. Index: ui_core_implementation.cpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/future/widgets/sources/win/ui_core_implementation.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** ui_core_implementation.cpp 19 Jan 2006 00:09:44 -0000 1.8 --- ui_core_implementation.cpp 24 Jan 2006 02:47:19 -0000 1.9 *************** *** 1,4480 **** ! /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) ! */ ! ! /****************************************************************************************************/ ! ! #include "ui_core_implementation.hpp" ! #include "ui_core_common.hpp" [...8910 lines suppressed...] ! ! display_t::position_t result; ! ! // if (scroll_ref) result = display.insert<HWND>(parent, scroll_ref); ! // else ! result = display.insert<HWND>(parent, ref); ! ! if (label_ref) display.insert<HWND>(parent, label_ref); ! if (static_disable_ref) display.insert<HWND>(parent, static_disable_ref); ! if (popup_static_disable_ref) display.insert<HWND>(parent, popup_static_disable_ref); ! if (popup_ref) display.insert<HWND>(parent, popup_ref); ! ! return result; ! } ! ! /****************************************************************************************************/ ! ! } // namespace adobe ! ! /****************************************************************************************************/ |
From: Thomas W. <wi...@us...> - 2006-01-19 00:09:52
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/future/widgets/sources/win In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22529/adobe-source/adobe/future/widgets/sources/win Modified Files: ui_core_implementation.cpp Log Message: Fix edit_number crashes when label is empty. Index: ui_core_implementation.cpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/future/widgets/sources/win/ui_core_implementation.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** ui_core_implementation.cpp 6 Jan 2006 18:02:59 -0000 1.7 --- ui_core_implementation.cpp 19 Jan 2006 00:09:44 -0000 1.8 *************** *** 1,4478 **** ! /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) ! */ ! ! /****************************************************************************************************/ ! ! #include "ui_core_implementation.hpp" ! #include "ui_core_common.hpp" [...8929 lines suppressed...] ! ! display_t::position_t result; ! ! // if (scroll_ref) result = display.insert<HWND>(parent, scroll_ref); ! // else ! result = display.insert<HWND>(parent, ref); ! ! if (label_ref) display.insert<HWND>(parent, label_ref); ! if (static_disable_ref) display.insert<HWND>(parent, static_disable_ref); ! if (popup_static_disable_ref) display.insert<HWND>(parent, popup_static_disable_ref); ! if (popup_ref) display.insert<HWND>(parent, popup_ref); ! ! return result; ! } ! ! /****************************************************************************************************/ ! ! } // namespace adobe ! ! /****************************************************************************************************/ |
From: Thomas W. <wi...@us...> - 2006-01-12 00:25:11
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/ide_projects/vc8/Release In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25983/Release Removed Files: editor.adm editor.eve glossary.xstr Log Message: Introduce build directory. Copy sheets and glossary from sources. --- editor.eve DELETED --- --- glossary.xstr DELETED --- --- editor.adm DELETED --- |
From: Thomas W. <wi...@us...> - 2006-01-12 00:25:11
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/ide_projects/vc8 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25983 Modified Files: adobe_all.vsprops asl.vcproj asl_dev.vcproj asl_dir.vsprops begin.vcproj boost_filesystem.vcproj boost_signals.vcproj boost_thread.vcproj widgets.vcproj Log Message: Introduce build directory. Copy sheets and glossary from sources. Index: asl.vcproj =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/ide_projects/vc8/asl.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** asl.vcproj 2 Dec 2005 02:59:17 -0000 1.1 --- asl.vcproj 12 Jan 2006 00:25:02 -0000 1.2 *************** *** 18,23 **** <Configuration Name="Debug|Win32" - OutputDirectory="$(SolutionDir)$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" ConfigurationType="4" InheritedPropertySheets=".\boost_all.vsprops;.\adobe_all.vsprops" --- 18,21 ---- *************** *** 84,89 **** <Configuration Name="Release|Win32" - OutputDirectory="$(SolutionDir)$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" ConfigurationType="4" InheritedPropertySheets=".\boost_all.vsprops;.\adobe_release.vsprops;.\adobe_all.vsprops" --- 82,85 ---- Index: boost_filesystem.vcproj =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/ide_projects/vc8/boost_filesystem.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** boost_filesystem.vcproj 2 Dec 2005 02:59:17 -0000 1.1 --- boost_filesystem.vcproj 12 Jan 2006 00:25:02 -0000 1.2 *************** *** 1,188 **** ! <?xml version="1.0" encoding="Windows-1252"?> ! <VisualStudioProject ! ProjectType="Visual C++" ! Version="8.00" ! Name="boost_filesystem" ! ProjectGUID="{12683712-9847-45C9-8791-EF45D2961F3A}" ! RootNamespace="boost_signals" ! Keyword="Win32Proj" ! > ! <Platforms> ! <Platform ! Name="Win32" ! /> ! </Platforms> ! <ToolFiles> ! </ToolFiles> ! <Configurations> ! <Configuration ! Name="Debug|Win32" ! OutputDirectory="$(SolutionDir)$(ConfigurationName)" ! IntermediateDirectory="$(ConfigurationName)" ! ConfigurationType="4" ! InheritedPropertySheets=".\boost_all.vsprops" ! CharacterSet="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! Optimization="0" ! AdditionalIncludeDirectories=""$(ProjectDir)..\..\..\third_party\boost_tp\boost"" ! MinimalRebuild="true" ! BasicRuntimeChecks="3" ! RuntimeLibrary="3" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="4" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLibrarianTool" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! <Configuration ! Name="Release|Win32" ! OutputDirectory="$(SolutionDir)$(ConfigurationName)" ! IntermediateDirectory="$(ConfigurationName)" ! ConfigurationType="4" ! InheritedPropertySheets=".\boost_all.vsprops;.\adobe_release.vsprops" ! CharacterSet="1" ! WholeProgramOptimization="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! AdditionalIncludeDirectories=""$(ProjectDir)\..\..\..\third_party\boost_tp\boost"" ! PreprocessorDefinitions="$(Inherit)" ! RuntimeLibrary="2" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="3" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLibrarianTool" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! </Configurations> ! <References> ! </References> ! <Files> ! <Filter ! Name="Source Files" ! Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" ! UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" ! > ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\filesystem\src\convenience.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\filesystem\src\exception.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\filesystem\src\operations_posix_windows.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\filesystem\src\path_posix_windows.cpp" ! > ! </File> ! </Filter> ! <Filter ! Name="Header Files" ! Filter="h;hpp;hxx;hm;inl;inc;xsd" ! UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" ! > ! </Filter> ! <Filter ! Name="Resource Files" ! Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" ! UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" ! > ! </Filter> ! <File ! RelativePath=".\ReadMe.txt" ! > ! </File> ! </Files> ! <Globals> ! </Globals> ! </VisualStudioProject> --- 1,180 ---- ! <?xml version="1.0" encoding="Windows-1252"?> ! <VisualStudioProject ! ProjectType="Visual C++" ! Version="8.00" ! Name="boost_filesystem" ! ProjectGUID="{12683712-9847-45C9-8791-EF45D2961F3A}" ! RootNamespace="boost_signals" ! Keyword="Win32Proj" ! > ! <Platforms> ! <Platform ! Name="Win32" ! /> ! </Platforms> ! <ToolFiles> ! </ToolFiles> ! <Configurations> ! <Configuration ! Name="Debug|Win32" ! ConfigurationType="4" ! InheritedPropertySheets=".\boost_all.vsprops" ! CharacterSet="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! Optimization="0" ! AdditionalIncludeDirectories=""$(ProjectDir)..\..\..\third_party\boost_tp\boost"" ! MinimalRebuild="true" ! BasicRuntimeChecks="3" ! RuntimeLibrary="3" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="4" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLibrarianTool" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! <Configuration ! Name="Release|Win32" ! ConfigurationType="4" ! InheritedPropertySheets=".\boost_all.vsprops;.\adobe_release.vsprops" ! CharacterSet="1" ! WholeProgramOptimization="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! AdditionalIncludeDirectories=""$(ProjectDir)\..\..\..\third_party\boost_tp\boost"" ! PreprocessorDefinitions="$(Inherit)" ! RuntimeLibrary="2" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="3" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLibrarianTool" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! </Configurations> ! <References> ! </References> ! <Files> ! <Filter ! Name="Source Files" ! Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" ! UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" ! > ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\filesystem\src\convenience.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\filesystem\src\exception.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\filesystem\src\operations_posix_windows.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\filesystem\src\path_posix_windows.cpp" ! > ! </File> ! </Filter> ! <Filter ! Name="Header Files" ! Filter="h;hpp;hxx;hm;inl;inc;xsd" ! UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" ! > ! </Filter> ! <Filter ! Name="Resource Files" ! Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" ! UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" ! > ! </Filter> ! </Files> ! <Globals> ! </Globals> ! </VisualStudioProject> Index: begin.vcproj =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/ide_projects/vc8/begin.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** begin.vcproj 2 Dec 2005 02:59:17 -0000 1.1 --- begin.vcproj 12 Jan 2006 00:25:02 -0000 1.2 *************** *** 1,291 **** ! <?xml version="1.0" encoding="Windows-1252"?> ! <VisualStudioProject ! ProjectType="Visual C++" ! Version="8.00" ! Name="begin" ! ProjectGUID="{49ED2497-6E54-4A31-85BE-9E166FEC714E}" ! RootNamespace="begin" ! Keyword="Win32Proj" ! > ! <Platforms> ! <Platform ! Name="Win32" ! /> ! </Platforms> ! <ToolFiles> ! </ToolFiles> ! <Configurations> ! <Configuration ! Name="Debug|Win32" ! OutputDirectory="$(SolutionDir)$(ConfigurationName)" ! IntermediateDirectory="$(ConfigurationName)" ! ConfigurationType="1" ! InheritedPropertySheets=".\adobe_widgets.vsprops;.\adobe_debug.vsprops" ! CharacterSet="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! Optimization="0" ! AdditionalIncludeDirectories=""$(ASLDir)adobe\test\begin\headers";"$(ASLDir)adobe\test\begin\resources";"$(ASLDir)adobe\test\begin"" ! MinimalRebuild="true" ! BasicRuntimeChecks="3" ! RuntimeLibrary="3" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="4" ! DisableSpecificWarnings="4996" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! AdditionalIncludeDirectories=""$(ASLDir)adobe\test\begin"" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLinkerTool" ! AdditionalDependencies="comctl32.lib" ! LinkIncremental="2" ! GenerateManifest="false" ! GenerateDebugInformation="true" ! SubSystem="2" ! TargetMachine="1" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCManifestTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCAppVerifierTool" ! /> ! <Tool ! Name="VCWebDeploymentTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! <Configuration ! Name="Release|Win32" ! OutputDirectory="$(SolutionDir)$(ConfigurationName)" ! IntermediateDirectory="$(ConfigurationName)" ! ConfigurationType="1" ! InheritedPropertySheets=".\adobe_widgets.vsprops;.\adobe_release.vsprops" ! CharacterSet="1" ! WholeProgramOptimization="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! AdditionalIncludeDirectories=""$(ASLDir)adobe\test\begin\headers";"$(ASLDir)adobe\test\begin\resources";"$(ASLDir)adobe\test\begin"" ! RuntimeLibrary="2" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="3" ! DisableSpecificWarnings="4996" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! AdditionalIncludeDirectories=""$(ASLDir)adobe\test\begin"" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLinkerTool" ! AdditionalDependencies="comctl32.lib" ! LinkIncremental="1" ! GenerateManifest="false" ! GenerateDebugInformation="true" ! SubSystem="2" ! OptimizeReferences="2" ! EnableCOMDATFolding="2" ! TargetMachine="1" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCManifestTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCAppVerifierTool" ! /> ! <Tool ! Name="VCWebDeploymentTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! </Configurations> ! <References> ! <ProjectReference ! ReferencedProjectIdentifier="{DEBACEBD-0145-4A06-AD7B-AF9C1E7674BD}" ! RelativePathToProject=".\asl_dev.vcproj" ! /> ! <ProjectReference ! ReferencedProjectIdentifier="{12683712-9847-45C9-8791-EF45D2961F3A}" ! RelativePathToProject=".\boost_filesystem.vcproj" ! /> ! <ProjectReference ! ReferencedProjectIdentifier="{269321D0-2FD9-45AA-B4E7-BD185FEBBF0A}" ! RelativePathToProject=".\boost_signals.vcproj" ! /> ! <ProjectReference ! ReferencedProjectIdentifier="{889CB0B0-4D44-456A-A18C-FE1255A03A99}" ! RelativePathToProject=".\boost_thread.vcproj" ! /> ! <ProjectReference ! ReferencedProjectIdentifier="{92EAADEA-B654-4DB1-9472-ECFF6E64C120}" ! RelativePathToProject=".\widgets.vcproj" ! /> ! </References> ! <Files> ! <Filter ! Name="Source Files" ! Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" ! UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" ! > ! <File ! RelativePath="..\..\adobe\test\begin\sources\express_viewer.cpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\test\begin\sources\win\main.cpp" ! > ! <FileConfiguration ! Name="Debug|Win32" ! > ! <Tool ! Name="VCCLCompilerTool" ! ObjectFile="$(IntDir)\$(InputName)1.obj" ! XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc" ! /> ! </FileConfiguration> ! <FileConfiguration ! Name="Release|Win32" ! > ! <Tool ! Name="VCCLCompilerTool" ! ObjectFile="$(IntDir)\$(InputName)1.obj" ! XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc" ! /> ! </FileConfiguration> ! </File> ! <File ! RelativePath="..\..\adobe\test\begin\sources\report_exception.cpp" ! > ! <FileConfiguration ! Name="Debug|Win32" ! > ! <Tool ! Name="VCCLCompilerTool" ! ObjectFile="$(IntDir)\$(InputName)1.obj" ! XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc" ! /> ! </FileConfiguration> ! <FileConfiguration ! Name="Release|Win32" ! > ! <Tool ! Name="VCCLCompilerTool" ! ObjectFile="$(IntDir)\$(InputName)1.obj" ! XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc" ! /> ! </FileConfiguration> ! </File> ! </Filter> ! <Filter ! Name="Header Files" ! Filter="h;hpp;hxx;hm;inl;inc;xsd" ! UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" ! > ! <File ! RelativePath="..\..\adobe\test\begin\headers\express_viewer.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\test\begin\headers\latch.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\test\begin\headers\report_exception.hpp" ! > ! </File> ! <File ! RelativePath="..\..\..\adobe\test\begin\resources\resources.h" ! > ! </File> ! </Filter> ! <Filter ! Name="Resource Files" ! Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" ! UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" ! > ! <File ! RelativePath="..\..\adobe\test\begin\resources\resources.rc" ! > ! </File> ! </Filter> ! </Files> ! <Globals> ! </Globals> ! </VisualStudioProject> --- 1,359 ---- ! <?xml version="1.0" encoding="Windows-1252"?> ! <VisualStudioProject ! ProjectType="Visual C++" ! Version="8.00" ! Name="begin" ! ProjectGUID="{49ED2497-6E54-4A31-85BE-9E166FEC714E}" ! RootNamespace="begin" ! Keyword="Win32Proj" ! > ! <Platforms> ! <Platform ! Name="Win32" ! /> ! </Platforms> ! <ToolFiles> ! </ToolFiles> ! <Configurations> ! <Configuration ! Name="Debug|Win32" ! ConfigurationType="1" ! InheritedPropertySheets=".\adobe_widgets.vsprops;.\adobe_debug.vsprops" ! CharacterSet="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! Optimization="0" ! AdditionalIncludeDirectories=""$(ASLDir)adobe\test\begin\headers";"$(ASLDir)adobe\test\begin\resources";"$(ASLDir)adobe\test\begin"" ! MinimalRebuild="true" ! BasicRuntimeChecks="3" ! RuntimeLibrary="3" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="4" ! DisableSpecificWarnings="4996" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! AdditionalIncludeDirectories=""$(ASLDir)adobe\test\begin"" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLinkerTool" ! AdditionalDependencies="comctl32.lib" ! LinkIncremental="2" ! GenerateManifest="false" ! GenerateDebugInformation="true" ! SubSystem="2" ! TargetMachine="1" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCManifestTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCAppVerifierTool" ! /> ! <Tool ! Name="VCWebDeploymentTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! <Configuration ! Name="Release|Win32" ! ConfigurationType="1" ! InheritedPropertySheets=".\adobe_widgets.vsprops;.\adobe_release.vsprops" ! CharacterSet="1" ! WholeProgramOptimization="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! AdditionalIncludeDirectories=""$(ASLDir)adobe\test\begin\headers";"$(ASLDir)adobe\test\begin\resources";"$(ASLDir)adobe\test\begin"" ! RuntimeLibrary="2" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="3" ! DisableSpecificWarnings="4996" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! AdditionalIncludeDirectories=""$(ASLDir)adobe\test\begin"" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLinkerTool" ! AdditionalDependencies="comctl32.lib" ! LinkIncremental="1" ! GenerateManifest="false" ! GenerateDebugInformation="true" ! SubSystem="2" ! OptimizeReferences="2" ! EnableCOMDATFolding="2" ! TargetMachine="1" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCManifestTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCAppVerifierTool" ! /> ! <Tool ! Name="VCWebDeploymentTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! </Configurations> ! <References> ! <ProjectReference ! ReferencedProjectIdentifier="{DEBACEBD-0145-4A06-AD7B-AF9C1E7674BD}" ! RelativePathToProject=".\asl_dev.vcproj" ! /> ! <ProjectReference ! ReferencedProjectIdentifier="{12683712-9847-45C9-8791-EF45D2961F3A}" ! RelativePathToProject=".\boost_filesystem.vcproj" ! /> ! <ProjectReference ! ReferencedProjectIdentifier="{269321D0-2FD9-45AA-B4E7-BD185FEBBF0A}" ! RelativePathToProject=".\boost_signals.vcproj" ! /> ! <ProjectReference ! ReferencedProjectIdentifier="{889CB0B0-4D44-456A-A18C-FE1255A03A99}" ! RelativePathToProject=".\boost_thread.vcproj" ! /> ! <ProjectReference ! ReferencedProjectIdentifier="{92EAADEA-B654-4DB1-9472-ECFF6E64C120}" ! RelativePathToProject=".\widgets.vcproj" ! /> ! </References> ! <Files> ! <Filter ! Name="Source Files" ! Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" ! UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" ! > ! <File ! RelativePath="..\..\adobe\test\begin\sources\express_viewer.cpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\test\begin\sources\win\main.cpp" ! > ! <FileConfiguration ! Name="Debug|Win32" ! > ! <Tool ! Name="VCCLCompilerTool" ! ObjectFile="$(IntDir)\$(InputName)1.obj" ! XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc" ! /> ! </FileConfiguration> ! <FileConfiguration ! Name="Release|Win32" ! > ! <Tool ! Name="VCCLCompilerTool" ! ObjectFile="$(IntDir)\$(InputName)1.obj" ! XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc" ! /> ! </FileConfiguration> ! </File> ! <File ! RelativePath="..\..\adobe\test\begin\sources\report_exception.cpp" ! > ! <FileConfiguration ! Name="Debug|Win32" ! > ! <Tool ! Name="VCCLCompilerTool" ! ObjectFile="$(IntDir)\$(InputName)1.obj" ! XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc" ! /> ! </FileConfiguration> ! <FileConfiguration ! Name="Release|Win32" ! > ! <Tool ! Name="VCCLCompilerTool" ! ObjectFile="$(IntDir)\$(InputName)1.obj" ! XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc" ! /> ! </FileConfiguration> ! </File> ! </Filter> ! <Filter ! Name="Header Files" ! Filter="h;hpp;hxx;hm;inl;inc;xsd" ! UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" ! > ! <File ! RelativePath="..\..\adobe\test\begin\headers\express_viewer.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\test\begin\headers\latch.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\test\begin\headers\report_exception.hpp" ! > ! </File> ! <File ! RelativePath="..\..\..\adobe\test\begin\resources\resources.h" ! > ! </File> ! </Filter> ! <Filter ! Name="Resource Files" ! Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" ! UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" ! > ! <File ! RelativePath="..\..\adobe\test\begin\resources\resources.rc" ! > ! </File> ! </Filter> ! <File ! RelativePath="..\..\adobe\test\begin\resources\editor.adm" ! > ! <FileConfiguration ! Name="Debug|Win32" ! > ! <Tool ! Name="VCCustomBuildTool" ! Description="copying $(InputFileName)" ! CommandLine="copy $(InputPath) $(OutDir)" ! Outputs="$(OutDir)\$(InputFileName)" ! /> ! </FileConfiguration> ! <FileConfiguration ! Name="Release|Win32" ! > ! <Tool ! Name="VCCustomBuildTool" ! Description="copying $(InputFileName)" ! CommandLine="copy $(InputPath) $(OutDir)" ! Outputs="$(OutDir)\$(InputFileName)" ! /> ! </FileConfiguration> ! </File> ! <File ! RelativePath="..\..\adobe\test\begin\resources\editor.eve" ! > ! <FileConfiguration ! Name="Debug|Win32" ! > ! <Tool ! Name="VCCustomBuildTool" ! Description="copying $(InputFileName)" ! CommandLine="copy $(InputPath) $(OutDir)" ! Outputs="$(OutDir)\$(InputFileName)" ! /> ! </FileConfiguration> ! <FileConfiguration ! Name="Release|Win32" ! > ! <Tool ! Name="VCCustomBuildTool" ! Description="copying $(InputFileName)" ! CommandLine="copy $(InputPath) $(OutDir)" ! Outputs="$(OutDir)\$(InputFileName)" ! /> ! </FileConfiguration> ! </File> ! <File ! RelativePath="..\..\adobe\test\begin\resources\glossary.xstr" ! > ! <FileConfiguration ! Name="Debug|Win32" ! > ! <Tool ! Name="VCCustomBuildTool" ! Description="copying $(InputFileName)" ! CommandLine="copy $(InputPath) $(OutDir)" ! Outputs="$(OutDir)\$(InputFileName)" ! /> ! </FileConfiguration> ! <FileConfiguration ! Name="Release|Win32" ! > ! <Tool ! Name="VCCustomBuildTool" ! Description="copying $(InputFileName)" ! CommandLine="copy $(InputPath) $(OutDir)" ! Outputs="$(OutDir)\$(InputFileName)" ! /> ! </FileConfiguration> ! </File> ! </Files> ! <Globals> ! </Globals> ! </VisualStudioProject> Index: boost_signals.vcproj =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/ide_projects/vc8/boost_signals.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** boost_signals.vcproj 2 Dec 2005 02:59:17 -0000 1.1 --- boost_signals.vcproj 12 Jan 2006 00:25:02 -0000 1.2 *************** *** 1,193 **** ! <?xml version="1.0" encoding="Windows-1252"?> ! <VisualStudioProject ! ProjectType="Visual C++" ! Version="8.00" ! Name="boost_signals" ! ProjectGUID="{269321D0-2FD9-45AA-B4E7-BD185FEBBF0A}" ! RootNamespace="boost_signals" ! Keyword="Win32Proj" ! > ! <Platforms> ! <Platform ! Name="Win32" ! /> ! </Platforms> ! <ToolFiles> ! </ToolFiles> ! <Configurations> ! <Configuration ! Name="Debug|Win32" ! OutputDirectory="$(SolutionDir)$(ConfigurationName)" ! IntermediateDirectory="$(ConfigurationName)" ! ConfigurationType="4" ! InheritedPropertySheets=".\boost_all.vsprops" ! CharacterSet="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! Optimization="0" ! AdditionalIncludeDirectories=""$(ProjectDir)..\..\..\third_party\boost_tp\boost"" ! PreprocessorDefinitions="$(Inherit)" ! MinimalRebuild="true" ! BasicRuntimeChecks="3" ! RuntimeLibrary="3" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="4" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLibrarianTool" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! <Configuration ! Name="Release|Win32" ! OutputDirectory="$(SolutionDir)$(ConfigurationName)" ! IntermediateDirectory="$(ConfigurationName)" ! ConfigurationType="4" ! InheritedPropertySheets=".\boost_all.vsprops;.\adobe_release.vsprops" ! CharacterSet="1" ! WholeProgramOptimization="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! AdditionalIncludeDirectories=""$(ProjectDir)\..\..\..\third_party\boost_tp\boost"" ! PreprocessorDefinitions="$(Inherit)" ! RuntimeLibrary="2" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="3" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLibrarianTool" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! </Configurations> ! <References> ! </References> ! <Files> ! <Filter ! Name="Source Files" ! Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" ! UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" ! > ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\signals\src\connection.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\signals\src\named_slot_map.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\signals\src\signal_base.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\signals\src\slot.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\signals\src\trackable.cpp" ! > ! </File> ! </Filter> ! <Filter ! Name="Header Files" ! Filter="h;hpp;hxx;hm;inl;inc;xsd" ! UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" ! > ! </Filter> ! <Filter ! Name="Resource Files" ! Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" ! UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" ! > ! </Filter> ! <File ! RelativePath=".\ReadMe.txt" ! > ! </File> ! </Files> ! <Globals> ! </Globals> ! </VisualStudioProject> --- 1,185 ---- ! <?xml version="1.0" encoding="Windows-1252"?> ! <VisualStudioProject ! ProjectType="Visual C++" ! Version="8.00" ! Name="boost_signals" ! ProjectGUID="{269321D0-2FD9-45AA-B4E7-BD185FEBBF0A}" ! RootNamespace="boost_signals" ! Keyword="Win32Proj" ! > ! <Platforms> ! <Platform ! Name="Win32" ! /> ! </Platforms> ! <ToolFiles> ! </ToolFiles> ! <Configurations> ! <Configuration ! Name="Debug|Win32" ! ConfigurationType="4" ! InheritedPropertySheets=".\boost_all.vsprops" ! CharacterSet="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! Optimization="0" ! AdditionalIncludeDirectories=""$(ProjectDir)..\..\..\third_party\boost_tp\boost"" ! PreprocessorDefinitions="$(Inherit)" ! MinimalRebuild="true" ! BasicRuntimeChecks="3" ! RuntimeLibrary="3" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="4" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLibrarianTool" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! <Configuration ! Name="Release|Win32" ! ConfigurationType="4" ! InheritedPropertySheets=".\boost_all.vsprops;.\adobe_release.vsprops" ! CharacterSet="1" ! WholeProgramOptimization="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! AdditionalIncludeDirectories=""$(ProjectDir)\..\..\..\third_party\boost_tp\boost"" ! PreprocessorDefinitions="$(Inherit)" ! RuntimeLibrary="2" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="3" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLibrarianTool" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! </Configurations> ! <References> ! </References> ! <Files> ! <Filter ! Name="Source Files" ! Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" ! UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" ! > ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\signals\src\connection.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\signals\src\named_slot_map.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\signals\src\signal_base.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\signals\src\slot.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\signals\src\trackable.cpp" ! > ! </File> ! </Filter> ! <Filter ! Name="Header Files" ! Filter="h;hpp;hxx;hm;inl;inc;xsd" ! UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" ! > ! </Filter> ! <Filter ! Name="Resource Files" ! Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" ! UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" ! > ! </Filter> ! </Files> ! <Globals> ! </Globals> ! </VisualStudioProject> Index: asl_dir.vsprops =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/ide_projects/vc8/asl_dir.vsprops,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** asl_dir.vsprops 2 Dec 2005 02:59:17 -0000 1.1 --- asl_dir.vsprops 12 Jan 2006 00:25:02 -0000 1.2 *************** *** 1,12 **** ! <?xml version="1.0" encoding="Windows-1252"?> ! <VisualStudioPropertySheet ! ProjectType="Visual C++" ! Version="8.00" ! Name="asl_dir" ! InheritedPropertySheets=".\adobe_all.vsprops" ! > ! <UserMacro ! Name="ASLDir" ! Value="$(SolutionDir)..\..\" ! /> ! </VisualStudioPropertySheet> --- 1,12 ---- ! <?xml version="1.0" encoding="Windows-1252"?> ! <VisualStudioPropertySheet ! ProjectType="Visual C++" ! Version="8.00" ! Name="asl_dir" ! InheritedPropertySheets=".\adobe_all.vsprops" ! > ! <UserMacro ! Name="ASLDir" ! Value="$(SolutionDir)..\..\" ! /> ! </VisualStudioPropertySheet> Index: widgets.vcproj =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/ide_projects/vc8/widgets.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** widgets.vcproj 2 Dec 2005 02:59:17 -0000 1.1 --- widgets.vcproj 12 Jan 2006 00:25:02 -0000 1.2 *************** *** 1,254 **** ! <?xml version="1.0" encoding="Windows-1252"?> ! <VisualStudioProject ! ProjectType="Visual C++" ! Version="8.00" ! Name="widgets" ! ProjectGUID="{92EAADEA-B654-4DB1-9472-ECFF6E64C120}" ! RootNamespace="widgets" ! Keyword="Win32Proj" ! > ! <Platforms> ! <Platform ! Name="Win32" ! /> ! </Platforms> ! <ToolFiles> ! </ToolFiles> ! <Configurations> ! <Configuration ! Name="Debug|Win32" ! OutputDirectory="$(SolutionDir)$(ConfigurationName)" ! IntermediateDirectory="$(ConfigurationName)" ! ConfigurationType="4" ! InheritedPropertySheets=".\adobe_widgets.vsprops;.\adobe_debug.vsprops" ! CharacterSet="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! Optimization="0" ! AdditionalIncludeDirectories="" ! MinimalRebuild="true" ! BasicRuntimeChecks="3" ! RuntimeLibrary="3" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="4" ! DisableSpecificWarnings="4996" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLibrarianTool" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! <Configuration ! Name="Release|Win32" ! OutputDirectory="$(SolutionDir)$(ConfigurationName)" ! IntermediateDirectory="$(ConfigurationName)" ! ConfigurationType="4" ! InheritedPropertySheets=".\adobe_widgets.vsprops;.\adobe_release.vsprops" ! CharacterSet="1" ! WholeProgramOptimization="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! AdditionalIncludeDirectories="" ! PreprocessorDefinitions="$(Inherit)" ! RuntimeLibrary="2" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="3" ! DisableSpecificWarnings="4996" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLibrarianTool" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! </Configurations> ! <References> ! </References> ! <Files> ! <Filter ! Name="Source Files" ! Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" ! UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" ! > ! <File ! RelativePath="..\..\adobe\future\widgets\sources\client_assembler.cpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\sources\win\display.cpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\sources\win\event_dispatcher.cpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\sources\win\metrics.cpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\sources\ui_core.cpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\sources\ui_core_common.cpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\sources\win\ui_core_implementation.cpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\sources\win\ui_overlay.cpp" ! > ! </File> ! </Filter> ! <Filter ! Name="Header Files" ! Filter="h;hpp;hxx;hm;inl;inc;xsd" ! UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" ! > ! <File ! RelativePath="..\..\adobe\future\widgets\headers\client_assembler.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\display.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\win\event_dispatcher.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\factory.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\win\metrics.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\optional_connect.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\resources\resources.h" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\ui_core.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\ui_core_common.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\win\ui_core_implementation.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\ui_overlay.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\win\wincast.hpp" ! > ! </File> ! </Filter> ! <Filter ! Name="Resource Files" ! Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" ! UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" ! > ! </Filter> ! <File ! RelativePath=".\ReadMe.txt" ! > ! </File> ! </Files> ! <Globals> ! </Globals> ! </VisualStudioProject> --- 1,246 ---- ! <?xml version="1.0" encoding="Windows-1252"?> ! <VisualStudioProject ! ProjectType="Visual C++" ! Version="8.00" ! Name="widgets" ! ProjectGUID="{92EAADEA-B654-4DB1-9472-ECFF6E64C120}" ! RootNamespace="widgets" ! Keyword="Win32Proj" ! > ! <Platforms> ! <Platform ! Name="Win32" ! /> ! </Platforms> ! <ToolFiles> ! </ToolFiles> ! <Configurations> ! <Configuration ! Name="Debug|Win32" ! ConfigurationType="4" ! InheritedPropertySheets=".\adobe_widgets.vsprops;.\adobe_debug.vsprops" ! CharacterSet="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! Optimization="0" ! AdditionalIncludeDirectories="" ! MinimalRebuild="true" ! BasicRuntimeChecks="3" ! RuntimeLibrary="3" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="4" ! DisableSpecificWarnings="4996" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLibrarianTool" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! <Configuration ! Name="Release|Win32" ! ConfigurationType="4" ! InheritedPropertySheets=".\adobe_widgets.vsprops;.\adobe_release.vsprops" ! CharacterSet="1" ! WholeProgramOptimization="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! AdditionalIncludeDirectories="" ! PreprocessorDefinitions="$(Inherit)" ! RuntimeLibrary="2" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="3" ! DisableSpecificWarnings="4996" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLibrarianTool" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! </Configurations> ! <References> ! </References> ! <Files> ! <Filter ! Name="Source Files" ! Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" ! UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" ! > ! <File ! RelativePath="..\..\adobe\future\widgets\sources\client_assembler.cpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\sources\win\display.cpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\sources\win\event_dispatcher.cpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\sources\win\metrics.cpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\sources\ui_core.cpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\sources\ui_core_common.cpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\sources\win\ui_core_implementation.cpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\sources\win\ui_overlay.cpp" ! > ! </File> ! </Filter> ! <Filter ! Name="Header Files" ! Filter="h;hpp;hxx;hm;inl;inc;xsd" ! UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" ! > ! <File ! RelativePath="..\..\adobe\future\widgets\headers\client_assembler.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\display.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\win\event_dispatcher.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\factory.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\win\metrics.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\optional_connect.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\resources\resources.h" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\ui_core.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\ui_core_common.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\win\ui_core_implementation.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\ui_overlay.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\future\widgets\headers\win\wincast.hpp" ! > ! </File> ! </Filter> ! <Filter ! Name="Resource Files" ! Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" ! UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" ! > ! </Filter> ! </Files> ! <Globals> ! </Globals> ! </VisualStudioProject> Index: asl_dev.vcproj =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/ide_projects/vc8/asl_dev.vcproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** asl_dev.vcproj 2 Dec 2005 02:59:17 -0000 1.1 --- asl_dev.vcproj 12 Jan 2006 00:25:02 -0000 1.2 *************** *** 1,563 **** ! <?xml version="1.0" encoding="Windows-1252"?> ! <VisualStudioProject ! ProjectType="Visual C++" ! Version="8.00" ! Name="asl_dev" ! ProjectGUID="{DEBACEBD-0145-4A06-AD7B-AF9C1E7674BD}" ! RootNamespace="asl" ! Keyword="Win32Proj" ! > ! <Platforms> [...1089 lines suppressed...] ! </File> ! <File ! RelativePath="..\..\adobe\source\zuid_sys_dep.hpp" ! > ! </File> ! <File ! RelativePath="..\..\adobe\source\zuid_uuid.hpp" ! > ! </File> ! </Filter> ! <Filter ! Name="Resource Files" ! Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" ! UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" ! > ! </Filter> ! </Files> ! <Globals> ! </Globals> ! </VisualStudioProject> Index: adobe_all.vsprops =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/ide_projects/vc8/adobe_all.vsprops,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** adobe_all.vsprops 2 Dec 2005 02:59:17 -0000 1.1 --- adobe_all.vsprops 12 Jan 2006 00:25:02 -0000 1.2 *************** *** 1,15 **** ! <?xml version="1.0" encoding="Windows-1252"?> ! <VisualStudioPropertySheet ! ProjectType="Visual C++" ! Version="8.00" ! Name="adobe_all" ! > ! <Tool ! Name="VCCLCompilerTool" ! PreprocessorDefinitions="ADOBE_VER=8;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;$(Inherit)" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! PreprocessorDefinitions="ADOBE_VER=8;$(Inherit)" ! /> ! </VisualStudioPropertySheet> --- 1,17 ---- ! <?xml version="1.0" encoding="Windows-1252"?> ! <VisualStudioPropertySheet ! ProjectType="Visual C++" ! Version="8.00" ! Name="adobe_all" ! OutputDirectory="$(SolutionDir)build\$(PlatformName)\$(ConfigurationName)\$(ProjectName)" ! IntermediateDirectory="$(SolutionDir)build\$(PlatformName)\$(ConfigurationName)\$(ProjectName)" ! > ! <Tool ! Name="VCCLCompilerTool" ! PreprocessorDefinitions="ADOBE_VER=8;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;$(Inherit)" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! PreprocessorDefinitions="ADOBE_VER=8;$(Inherit)" ! /> ! </VisualStudioPropertySheet> Index: boost_thread.vcproj =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/ide_projects/vc8/boost_thread.vcproj,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** boost_thread.vcproj 6 Jan 2006 18:03:06 -0000 1.2 --- boost_thread.vcproj 12 Jan 2006 00:25:02 -0000 1.3 *************** *** 1,221 **** ! <?xml version="1.0" encoding="Windows-1252"?> ! <VisualStudioProject ! ProjectType="Visual C++" ! Version="8.00" ! Name="boost_thread" ! ProjectGUID="{889CB0B0-4D44-456A-A18C-FE1255A03A99}" ! RootNamespace="boost_signals" ! Keyword="Win32Proj" ! > ! <Platforms> ! <Platform ! Name="Win32" ! /> ! </Platforms> ! <ToolFiles> ! </ToolFiles> ! <Configurations> ! <Configuration ! Name="Debug|Win32" ! OutputDirectory="$(SolutionDir)$(ConfigurationName)" ! IntermediateDirectory="$(ConfigurationName)" ! ConfigurationType="4" ! InheritedPropertySheets=".\boost_all.vsprops" ! CharacterSet="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! Optimization="0" ! AdditionalIncludeDirectories=""$(ProjectDir)..\..\..\third_party\boost_tp\boost"" ! PreprocessorDefinitions="$(Inherit)" ! MinimalRebuild="true" ! BasicRuntimeChecks="3" ! RuntimeLibrary="3" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="4" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLibrarianTool" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! <Configuration ! Name="Release|Win32" ! OutputDirectory="$(SolutionDir)$(ConfigurationName)" ! IntermediateDirectory="$(ConfigurationName)" ! ConfigurationType="4" ! InheritedPropertySheets=".\boost_all.vsprops" ! CharacterSet="1" ! WholeProgramOptimization="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! AdditionalIncludeDirectories=""$(ProjectDir)\..\..\..\third_party\boost_tp\boost"" ! PreprocessorDefinitions="$(Inherit)" ! RuntimeLibrary="2" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="3" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLibrarianTool" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! </Configurations> ! <References> ! </References> ! <Files> ! <Filter ! Name="Source Files" ! Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" ! UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" ! > ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\thread\src\barrier.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\thread\src\condition.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\thread\src\exceptions.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\thread\src\mutex.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\thread\src\once.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\thread\src\recursive_mutex.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\thread\src\thread.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\thread\src\tss.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\thread\src\tss_dll.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\thread\src\tss_hooks.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\thread\src\tss_pe.cpp" ! > ! </File> ! <File ! RelativePath="..\..\third_party\boost_tp\boost\libs\thread\src\xtime.cpp" ! > ! </File> ! </Filter> ! <Filter ! Name="Header Files" ! Filter="h;hpp;hxx;hm;inl;inc;xsd" ! UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" ! > ! </Filter> ! <Filter ! Name="Resource Files" ! Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" ! UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" ! > ! </Filter> ! <File ! RelativePath=".\ReadMe.txt" ! > ! </File> ! </Files> ! <Globals> ! </Globals> ! </VisualStudioProject> --- 1,213 ---- ! <?xml version="1.0" encoding="Windows-1252"?> ! <VisualStudioProject ! ProjectType="Visual C++" ! Version="8.00" ! Name="boost_thread" ! ProjectGUID="{889CB0B0-4D44-456A-A18C-FE1255A03A99}" ! RootNamespace="boost_signals" ! Keyword="Win32Proj" ! > ! <Platforms> ! <Platform ! Name="Win32" ! /> ! </Platforms> ! <ToolFiles> ! </ToolFiles> ! <Configurations> ! <Configuration ! Name="Debug|Win32" ! ConfigurationType="4" ! InheritedPropertySheets=".\boost_all.vsprops" ! CharacterSet="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! Optimization="0" ! AdditionalIncludeDirectories=""$(ProjectDir)..\..\..\third_party\boost_tp\boost"" ! PreprocessorDefinitions="$(Inherit)" ! MinimalRebuild="true" ! BasicRuntimeChecks="3" ! RuntimeLibrary="3" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="4" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLibrarianTool" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="VCBscMakeTool" ! /> ! <Tool ! Name="VCFxCopTool" ! /> ! <Tool ! Name="VCPostBuildEventTool" ! /> ! </Configuration> ! <Configuration ! Name="Release|Win32" ! ConfigurationType="4" ! InheritedPropertySheets=".\boost_all.vsprops" ! CharacterSet="1" ! WholeProgramOptimization="1" ! > ! <Tool ! Name="VCPreBuildEventTool" ! /> ! <Tool ! Name="VCCustomBuildTool" ! /> ! <Tool ! Name="VCXMLDataGeneratorTool" ! /> ! <Tool ! Name="VCWebServiceProxyGeneratorTool" ! /> ! <Tool ! Name="VCMIDLTool" ! /> ! <Tool ! Name="VCCLCompilerTool" ! AdditionalIncludeDirectories=""$(ProjectDir)\..\..\..\third_party\boost_tp\boost"" ! PreprocessorDefinitions="$(Inherit)" ! RuntimeLibrary="2" ! UsePrecompiledHeader="0" ! WarningLevel="3" ! Detect64BitPortabilityProblems="true" ! DebugInformationFormat="3" ! /> ! <Tool ! Name="VCManagedResourceCompilerTool" ! /> ! <Tool ! Name="VCResourceCompilerTool" ! /> ! <Tool ! Name="VCPreLinkEventTool" ! /> ! <Tool ! Name="VCLibrarianTool" ! /> ! <Tool ! Name="VCALinkTool" ! /> ! <Tool ! Name="VCXDCMakeTool" ! /> ! <Tool ! Name="V... [truncated message content] |
From: Thomas W. <wi...@us...> - 2006-01-12 00:25:11
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/ide_projects/vc8/Debug In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25983/Debug Removed Files: editor.adm editor.eve glossary.xstr Log Message: Introduce build directory. Copy sheets and glossary from sources. --- editor.eve DELETED --- --- glossary.xstr DELETED --- --- editor.adm DELETED --- |
From: Foster B. <fos...@us...> - 2006-01-09 19:41:19
|
Update of /cvsroot/adobe-source/adobe-source/adobe/gil/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21157 Added Files: algorithm.hpp channel.hpp cmyk.hpp color_convert.hpp gil_concept.hpp gil_config.hpp gray.hpp image.hpp image_view_factory.hpp lab.hpp metafunctions.hpp pixel.hpp pixel_iterator.hpp rgb.hpp rgba.hpp typedefs.hpp utilities.hpp variant.hpp Log Message: asl 1.0.12 stragglers --- NEW FILE: image.hpp --- /* Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ /*************************************************************************************************/ #ifndef GIL_IMAGE_H #define GIL_IMAGE_H //////////////////////////////////////////////////////////////////////////////////////// /// \file /// \brief Templated image /// \author Lubomir Bourdev and Hailin Jin \n /// Adobe Systems Incorporated /// /// //////////////////////////////////////////////////////////////////////////////////////// #include "gil_config.hpp" #include <memory> #include "pixel_iterator.hpp" ADOBE_GIL_NAMESPACE_BEGIN template <typename V1, typename V2> void copy_pixels(const V1& src, const V2& dst); #ifdef _MSC_VER #pragma warning(push) #pragma warning(disable : 4244) // conversion from 'gil::image<V,ALLOC>::coord_type' to 'int', possible loss of data (visual studio compiler doesn't realize that the two types are the same) #endif //////////////////////////////////////////////////////////////////////////////////////// /// \class image_view /// \ingroup ImageView /// \brief A lightweight object that interprets memory as a 2D array of pixels. /// /// Image view consists of a pixel 2D locator (defining the mechanism for navigating in 2D) /// and the image dimensions. /// /// Image views to images are what ranges are to STL containers. They are lightweight objects, /// that don't own the pixels. It is the user's responsibility that the underlying data remains /// valid for the lifetime of the image view. /// /// Similar to iterators and ranges, constness of views does not extend to constness of pixels. /// A const image_view does not allow changing its location in memory (resizing, moving) but does /// not prevent one from changing the pixels. The latter requires an image view whose value_type /// is const. /// /// Images have interfaces consistent with STL 1D random access containers, so they can be used /// directly in STL algorithms like: /// std::fill(img.begin(), img.end(), red_pixel); /// or /// std::transform(img.begin(), img.end(), dst.begin(), color_converter<rgb8_pixel>()); // convert src to RGB /// /// In addition, horizontal, vertical and 2D random access iterators are provided. /// //////////////////////////////////////////////////////////////////////////////////////// template <typename LOC> class pixel_image_iterator; template <typename LOC> // Models 2D Pixel Locator class image_view { GIL_CLASS_REQUIRE(LOC, GIL, XYLocatorConcept); public: // typedefs required by ConstRandomAccessNDImageViewConcept static const size_t num_dimensions=2; typedef typename LOC::value_type value_type; typedef typename LOC::reference reference; // result of dereferencing typedef typename LOC::coord_type coord_type; // 1D difference type (same for all dimensions) typedef coord_type difference_type; // result of operator-(1d_iterator,1d_iterator) typedef value_type domain_type; typedef typename LOC::point_type point_type; typedef LOC locator; typedef image_view<typename LOC::const_type> const_type; // same as this type, but over const values template <size_t D> struct axis { typedef typename LOC::template axis<D>::coord_type coord_type; // difference_type along each dimension typedef typename LOC::template axis<D>::iterator iterator; // 1D iterator type along each dimension }; typedef pixel_image_iterator<LOC> iterator; // 1D iterator type for each pixel left-to-right inside top-to-bottom typedef std::reverse_iterator<iterator> reverse_iterator; typedef size_t size_type; // typedefs required by ConstRandomAccess2DImageViewConcept typedef locator xy_locator; typedef typename xy_locator::x_iterator x_iterator; // pixel iterator along a row typedef typename xy_locator::y_iterator y_iterator; // pixel iterator along a column typedef typename xy_locator::x_coord_type x_coord_type; typedef typename xy_locator::y_coord_type y_coord_type; // typedefs required by ConstRandomAccess2DImageViewConcept typedef image_view<typename LOC::dynamic_step_type> dynamic_step_type; typedef typename LOC::channel_type channel_type; // type of the channel of a pixel typedef typename LOC::color_space_type color_space_type;// tag indicating the color space of an image image_view() : _dimensions(0,0) {} template <typename VIEW> image_view(const VIEW& iv) : _dimensions(iv.dimensions()), _pixels(iv.pixels()) {} template <typename L2> image_view(const point_type& sz , const L2& loc) : _dimensions(sz), _pixels(loc) {} template <typename L2> image_view(coord_type width, coord_type height, const L2& loc) : _dimensions(x_coord_type(width),y_coord_type(height)), _pixels(loc) {} image_view(const point_type& sz , const x_iterator& x_it, coord_type row_bytes) : _dimensions(sz), _pixels(x_it, row_bytes) {} image_view(coord_type width, coord_type height, const x_iterator& x_it, coord_type row_bytes) : _dimensions(x_coord_type(width),y_coord_type(height)), _pixels(x_it, row_bytes) {} template <typename VIEW> image_view& operator=(const VIEW& iv) { _pixels=iv.pixels(); _dimensions=iv.dimensions(); return *this; } image_view& operator=(const image_view& iv) { _pixels=iv.pixels(); _dimensions=iv.dimensions(); return *this; } template <typename VIEW> bool operator==(const VIEW& v) const { return pixels()==v.pixels() && dimensions()==v.dimensions(); } template <typename VIEW> bool operator!=(const VIEW& v) const { return !(*this==v); } template <typename L2> friend void swap(image_view<L2>& x, image_view<L2>& y); const point_type& dimensions() const { return _dimensions; } const locator& pixels() const { return _pixels; } x_coord_type width() const { return dimensions().x; } y_coord_type height() const { return dimensions().y; } difference_type row_bytes() const { return _pixels.row_bytes(); } // number of bytes per row difference_type pix_bytestep() const { return _pixels.pix_bytestep(); } // number of bytes between two adjacent pixels on the same row //\{@ /// \name 1D navigation size_type size() const { return width()*height(); } iterator begin() const { return iterator(_pixels,_dimensions.x); } iterator end() const { return begin()+size(); } // potential performance problem! reverse_iterator rbegin() const { return reverse_iterator(end()); } reverse_iterator rend() const { return reverse_iterator(begin()); } reference operator[](difference_type i) const { return begin()[i]; } // potential performance problem! iterator at(const point_type& p)const { return begin()+p.y*width()+p.x; } iterator at(x_coord_type x, y_coord_type y)const { return begin()+y*width()+x; } //\}@ //\{@ /// \name 2-D navigation reference operator()(const point_type& p) const { return _pixels(p.x,p.y); } reference operator()(x_coord_type x, y_coord_type y)const { return _pixels(x,y); } template <size_t D> typename axis<D>::iterator axis_iterator(const point_type& p) const { return _pixels.axis_iterator<D>(p); } xy_locator xy_at(x_coord_type x, y_coord_type y) const { return _pixels+point_type(x_coord_type(x),y_coord_type(y)); } locator xy_at(const point_type& p) const { return _pixels+p; } //\}@ //\{@ /// \name X navigation x_iterator x_at(x_coord_type x, y_coord_type y) const { return _pixels.x_at(x,y); } x_iterator x_at(const point_type& p) const { return _pixels.x_at(p); } x_iterator row_begin(y_coord_type y) const { return x_at(0,y); } x_iterator row_end(y_coord_type y) const { return x_at(width(),y); } //\}@ //\{@ /// \name Y navigation y_iterator y_at(x_coord_type x, y_coord_type y) const { return xy_at(x,y).y(); } y_iterator y_at(const point_type& p) const { return xy_at(p).y(); } y_iterator col_begin(x_coord_type x) const { return y_at(x,0); } y_iterator col_end(x_coord_type x) const { return y_at(x,height()); } //\}@ private: template <typename L2> friend class image_view; point_type _dimensions; xy_locator _pixels; }; template <typename L2> inline void swap(image_view<L2>& x, image_view<L2>& y) { std::swap(x._dimensions,y._dimensions); std::swap(x._pixels, y._pixels); // TODO: Extend further } //////////////////////////////////////////////////////////////////////////////////////// /// \class image /// \ingroup Image /// \brief container interface over image view /// /// image is a wrapper over image_view that owns the data. /// Images have deep copy constructor, operator= and operator==. /// A constant image does not allow for modifying its pixels. //////////////////////////////////////////////////////////////////////////////////////// template <typename V2,typename ALLOC2> void swap(image<V2,ALLOC2>& im1,image<V2,ALLOC2>& im2); template <typename V, typename ALLOC=std::allocator<unsigned char> > class image { public: typedef ALLOC allocator_type; typedef V view_type; typedef typename view_type::const_type const_view_type; typedef typename view_type::point_type point_type; typedef typename view_type::coord_type coord_type; typedef coord_type x_coord_type; typedef coord_type y_coord_type; typedef typename view_type::iterator iterator; typedef iterator pointer; typedef typename const_view_type::iterator const_iterator; typedef const_iterator const_pointer; typedef typename view_type::difference_type difference_type; typedef typename view_type::value_type value_type; typedef typename view_type::reference reference; typedef typename const_view_type::reference const_reference; typedef typename view_type::size_type size_type; typedef typename view_type::reverse_iterator reverse_iterator; typedef typename const_view_type::reverse_iterator const_reverse_iterator; const_iterator begin() const { return const_view(*this).begin(); } const_iterator end() const { return const_view(*this).end(); } const_reverse_iterator rbegin() const { return const_view(*this).rbegin(); } const_reverse_iterator rend() const { return const_view(*this).rend(); } iterator begin() { return _view.begin(); } iterator end() { return _view.end(); } reverse_iterator rbegin() { return _view.rbegin(); } reverse_iterator rend() { return _view.rend(); } reference operator[](size_type i) { return _view[i]; } const_reference operator[](size_type i) const { return const_view(*this)[i]; } // Warning: Slow!! size_type size() const { return _view.size(); } size_type max_size() const { return size(); } bool empty() const { return size()==0; } const point_type& dimensions() const { return _view.dimensions(); } x_coord_type width() const { return _view.width(); } y_coord_type height() const { return _view.height(); } image() {} // image that allocates own data. Calls new/delete[] image(const point_type& dimensions, unsigned int alignment=1) { create_with_own_data(dimensions,alignment); } image(x_coord_type width, y_coord_type height, unsigned int alignment=1) { create_with_own_data(point_type(width,height),alignment); } image(const image& img) : _alloc(img._alloc) { create_with_own_data(const_view(img).dimensions()); // TODO: Use the same alignment copy_pixels(const_view(img),_view); } template <typename V2,typename ALLOC2> image(const image<V2,ALLOC2>& img) :_alloc(img._alloc) { create_with_own_data(view(img).dimensions()); copy_pixels(view(img),_view); } template <typename IMG> image& operator=(const IMG& img) { image tmp(img); swap(tmp); return *this; } image& operator=(const image& img) { image tmp(img); swap(tmp); return *this; } ~image() { size_t size_in_bytes=_view.row_bytes()*_view.height(); if(std::iterator_traits<typename V::x_iterator>::is_planar) size_in_bytes*=V::color_space_type::num_channels; _alloc.deallocate((unsigned char*)&(_view(0,0)[0]),size_in_bytes); } template <typename V2, typename ALLOC2> friend const V2& view(image<V2,ALLOC2>& img); template <typename V2, typename ALLOC2> friend const typename V2::const_type& const_view(const image<V2,ALLOC2>& img); ALLOC& allocator() { return _alloc; } ALLOC const& allocator() const { return _alloc; } template <typename V2,typename ALLOC2> friend void swap(image<V2,ALLOC2>& im1,image<V2,ALLOC2>& im2); void swap(image& img) { GIL::swap(*this,img); } // required by boost::MutableContainerConcept private: view_type _view; // contains pointer to the pixels, the image size and ways to navigate pixels allocator_type _alloc; template <bool> class is_planar {}; void create_with_own_data(const point_type& dimensions, unsigned int alignment=1) { BOOST_STATIC_ASSERT(!has_dynamic_step<typename V::x_iterator>::value); create_with_own_data_(dimensions,alignment,is_planar<std::iterator_traits<typename V::x_iterator>::is_planar>()); } void create_with_own_data_(const point_type& dimensions, unsigned int alignment, is_planar<false>) { size_t rowsize_in_bytes=get_aligned(dimensions.x*sizeof(typename V::value_type),alignment); unsigned char* tmp=_alloc.allocate(rowsize_in_bytes*dimensions.y); try { _view=V(dimensions,typename V::x_iterator(tmp),rowsize_in_bytes); } catch(...) { _alloc.deallocate(tmp, rowsize_in_bytes*dimensions.y); throw; } } void create_with_own_data_(const point_type& dimensions, unsigned int alignment, is_planar<true>) { size_t planesize_in_bytes=get_aligned(dimensions.x*dimensions.y*sizeof(typename V::channel_type),alignment); size_t image_size_in_bytes=planesize_in_bytes*V::color_space_type::num_channels; unsigned char* tmp=_alloc.allocate(image_size_in_bytes); try { _view=V(dimensions, typename V::x_iterator(tmp,planesize_in_bytes),dimensions.x*sizeof(typename V::channel_type)); } catch(...) { _alloc.deallocate(tmp, image_size_in_bytes); throw; } } }; template <typename V1,typename V2> bool operator==(const image<V1>& im1,const image<V2>& im2) { if (&im1==&im2) return true; if (const_view(im1).dimensions()!=const_view(im2).dimensions()) return false; return std::equal(const_view(im1).begin(),const_view(im1).end(),const_view(im2).begin()); // TODO: change this to equal_pixels (for performance) } template <typename V1,typename V2> bool operator!=(const image<V1>& im1,const image<V2>& im2) {return !(im1==im2);} template <typename V2,typename ALLOC2> inline void swap(image<V2,ALLOC2>& im1,image<V2,ALLOC2>& im2) { swap(im1._view, im2._view); std::swap(im1.allocator(), im2.allocator()); } template <typename C> class variant; namespace detail { template <typename VC> // Models View Concept Space struct any_image_get_view { typedef variant<VC> result_type; template <typename V> result_type operator()( image<V>& img) const { return result_type(view(img)); } }; template <typename VC> // Models ConstView Concept Space struct any_image_get_const_view { typedef variant<VC> result_type; template <typename V> result_type operator()(const image<V>& img) const { return result_type(const_view(img)); } }; struct any_image_view_get_num_channels { typedef int result_type; template <typename VIEW> result_type operator()(const VIEW& v) const { return VIEW::color_space_type::num_channels; } }; struct any_image_view_get_dimensions { typedef point2<ptrdiff_t> result_type; template <typename VIEW> result_type operator()(const VIEW& v) const { return v.dimensions(); } }; } ///@{ /// \name view, const_view /// \brief Get an image view from an image /// \ingroup Image /// \brief Returns the non-constant-pixel view of an image template <typename V2, typename ALLOC2> inline const V2& view(image<V2,ALLOC2>& img) { return img._view; } /// \brief Returns the constant-pixel view of an image template <typename V2, typename ALLOC2> inline const typename V2::const_type& const_view(const image<V2,ALLOC2>& img) { return (typename V2::const_type&)img._view; } /// \brief Returns the non-constant-pixel view of any image. The returned view is any view. See variant.h for more template <typename IC> // Models Image Concept Space inline variant<typename IC::view_concept_space> view(variant<IC>& anyImage) { return anyImage.apply_visitor(detail::any_image_get_view<typename IC::view_concept_space>()); } /// \brief Returns the constant-pixel view of any image. The returned view is any view. See variant.h for more template <typename IC> // Models Image Concept Space inline variant<typename IC::const_view_concept_space> const_view(const variant<IC>& anyImage) { return anyImage.apply_visitor(detail::any_image_get_const_view<typename IC::const_view_concept_space>()); } ///@} ///@{ /// \name get_num_channels /// \brief Returns the number of channels of an image view /// \ingroup ImageView template <typename LOC> int get_num_channels(const image_view<LOC>& view) { return image_view<LOC>::color_space_type::num_channels; } template <typename C_S> int get_num_channels(const variant<C_S>& img_view) { return img_view.apply_visitor(detail::any_image_view_get_num_channels()); } ///@} ///@{ /// \name get_width, get_height, get_dimensions /// \brief Returns the dimensions of an image view /// \ingroup ImageView /// \brief Returns the width of a templated image view template <typename LOC> int get_width(const image_view<LOC>& view) { return view.width(); } /// \brief Returns the width of any image view template <typename C_S> int get_width(const variant<C_S>& img_view) { return img_view.apply_visitor(detail::any_image_view_get_dimensions()).x; } /// \brief Returns the height of a templated image view template <typename LOC> int get_height(const image_view<LOC>& view) { return view.width(); } /// \brief Returns the height of any image view template <typename C_S> int get_height(const variant<C_S>& img_view) { return img_view.apply_visitor(detail::any_image_view_get_dimensions()).y; } /// \brief Returns the dimensions of a templated image view template <typename LOC> point2<int> get_dimensions(const image_view<LOC>& view) { return view.dimensions(); } /// \brief Returns the dimensions of any image view template <typename C_S> point2<int> get_dimensions(const variant<C_S>& img_view) { return img_view.apply_visitor(detail::any_image_view_get_dimensions()); } ///@} ///@{ /// \name resize_clobber_image /// \brief Resizes a given image and invalidates its pixel values. If out of memory exception is thrown the image remains unchanged /// \ingroup Image template <typename IMG> void resize_clobber_image(IMG& img, const typename IMG::point_type& new_size) { gil_function_requires<ImageConcept<IMG> >(); IMG tmp(new_size); swap(tmp,img); } template <typename IMG> void resize_clobber_image(IMG& img, const typename IMG::x_coord_type& width, const typename IMG::y_coord_type& height) { resize_clobber_image(img, typename IMG::point_type(width,height)); } ///@} #ifdef _MSC_VER #pragma warning(pop) #endif ADOBE_GIL_NAMESPACE_END #endif --- NEW FILE: cmyk.hpp --- /* Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ /*************************************************************************************************/ #ifndef GIL_CMYK_H #define GIL_CMYK_H //////////////////////////////////////////////////////////////////////////////////////// /// \file /// \brief Support for CMYK color space and variants /// \author Lubomir Bourdev and Hailin Jin \n /// Adobe Systems Incorporated //////////////////////////////////////////////////////////////////////////////////////// #include "gil_config.hpp" #include <boost/type_traits.hpp> ADOBE_GIL_NAMESPACE_BEGIN //forward declarations for pixel and color_base template <typename T, typename C> struct pixel; namespace detail { template <typename T, typename C> struct color_base; } template <typename T, typename C> struct planar_ptr; template <typename T, typename C> struct planar_ptr_base; /// @defgroup CMYK CMYK Color Space /// @ingroup ColorSpaces /// \brief Constructs and utilities specific to the CMYK color space /// \brief CMYK color space identifier /// \ingroup CMYK struct cmyk_tag { typedef cmyk_tag base; BOOST_STATIC_CONSTANT(int, num_channels=4); }; namespace detail { /// \ingroup ColorBase /// \ingroup CMYK /// \brief cyan, magenta, yellow and black channel values/references/pointers /// /// Represents a CMYK unit of channel values (when used to construct a pixel), channel references (when used in a planar CMYK reference) /// or channel pointers (when used in a CMYK planar pointer) defined in this specific ordering in memory. Also provides channel accessors /// v0(), v1(), v2(), v3() agnostic of color space, which allow uniform operations on channels of different color spaces. The accessors also have /// consistent mapping between color bases representing order variations of the same color space. For example, v0() returns the red /// channel value/reference/pointer in both an rgb color base and in a bgr color base. template <typename T> struct color_base<T,cmyk_tag> { typedef cmyk_tag color_space_type; typedef T channel_type; typedef typename boost::add_const<channel_type>::type channel_const_type; typedef typename boost::add_reference<channel_type>::type channel_reference; typedef typename boost::add_reference<channel_const_type>::type channel_const_reference; T c,m,y,k; color_base() {} color_base(channel_type v0, channel_type v1, channel_type v2, channel_type v3) : c(v0), m(v1), y(v2), k(v3) {} template <typename T1, typename C1> color_base(const color_base<T1,C1>& cb) : c(cb.c), m(cb.m), y(cb.y), k(cb.k) {} template <typename T1, typename C1> color_base( color_base<T1,C1>& cb) : c(cb.c), m(cb.m), y(cb.y), k(cb.k) {} }; } ADOBE_GIL_NAMESPACE_END #include "pixel_iterator.hpp" // these need to be defined after including pixel... ADOBE_GIL_NAMESPACE_BEGIN //////////////////////////////////////////////////////////////////////////////////////// /// PLANAR CMYK //////////////////////////////////////////////////////////////////////////////////////// /// \brief Represents a pointer to a planar CMYK pixel. /// \ingroup PlanarPtr /// \ingroup CMYK /// /// A pointer can be constructed from and assigned to the address of a value, the address of a reference or another pointer /// It can also be dereferenced returning a reference template <typename T> struct planar_ptr<T,cmyk_tag> : public planar_ptr_base<T,cmyk_tag> { typedef planar_ptr_base<T,cmyk_tag> parent_type; typedef typename parent_type::reference reference; typedef typename parent_type::color_space_type color_space_type; planar_ptr() : parent_type(0,0,0,0) {} planar_ptr(T* ic, T* im, T* iy, T* ik) : parent_type(ic,im,iy,ik) {} // from raw data planar_ptr(unsigned char* data, ptrdiff_t step=1) : parent_type((T*)data, (T*)(data+step), (T*)(data+step+step), (T*)(data+step*3)) {} planar_ptr(const planar_ptr& ptr) : parent_type(ptr) {} planar_ptr& operator=(const planar_ptr& ptr) { this->p=ptr.p; return *this; } /// Copy constructor and operator= from pointers to compatible planar pixels or planar pixel references. /// That allow constructs like pointer = &value or pointer = &reference /// Since we should not override operator& that's the best we can do. template <typename T1, typename C1> planar_ptr(pixel<T1,C1>* pix) : parent_type(&pix->template v<0>(),&pix->template v<1>(), &pix->template v<2>(), &pix->template v<3>()) { STATIC_ASSERT_COMPATIBLE(T1,C1,T,color_space_type); } template <typename T1, typename C1> planar_ptr& operator=(pixel<T1,C1>* pix) { STATIC_ASSERT_COMPATIBLE(T1,C1,T,color_space_type); this->p.template v<0>()=&pix->template v<0>(); this->p.template v<1>()=&pix->template v<1>(); this->p.template v<2>()=&pix->template v<2>(); this->p.template v<3>()=&pix->template v<3>(); return *this; } reference dereference() const { return reference(*(this->p.c),*(this->p.m),*(this->p.y),*(this->p.k)); } }; /// \ingroup byte_advanced_ref /// Advancing a CMYK pixel by a given number of bytes template <typename T> inline pixel<T&,cmyk_tag> byte_advanced_ref(const planar_ptr<T,cmyk_tag>& p, ptrdiff_t byteDiff) { return pixel<T&,cmyk_tag>(*byte_advanced(p.p.c, byteDiff), *byte_advanced(p.p.m, byteDiff), *byte_advanced(p.p.y, byteDiff), *byte_advanced(p.p.k, byteDiff)); } namespace detail { template <typename CS,int N> struct logical_channel_accessor; /// \ingroup ChannelAccessor template <> struct logical_channel_accessor<cmyk_tag,0> { template <typename T> typename boost::add_reference<T>::type operator()(pixel<T,cmyk_tag>& p) const {return p.c;} template <typename T> typename boost::add_reference<typename boost::add_const<T>::type>::type operator()(const pixel<T,cmyk_tag>& p) const {return p.c;} }; /// \ingroup ChannelAccessor template <> struct logical_channel_accessor<cmyk_tag,1> { template <typename T> typename boost::add_reference<T>::type operator()(pixel<T,cmyk_tag>& p) const {return p.m;} template <typename T> typename boost::add_reference<typename boost::add_const<T>::type>::type operator()(const pixel<T,cmyk_tag>& p) const {return p.m;} }; /// \ingroup ChannelAccessor template <> struct logical_channel_accessor<cmyk_tag,2> { template <typename T> typename boost::add_reference<T>::type operator()(pixel<T,cmyk_tag>& p) const {return p.y;} template <typename T> typename boost::add_reference<typename boost::add_const<T>::type>::type operator()(const pixel<T,cmyk_tag>& p) const {return p.y;} }; /// \ingroup ChannelAccessor template <> struct logical_channel_accessor<cmyk_tag,3> { template <typename T> typename boost::add_reference<T>::type operator()(pixel<T,cmyk_tag>& p) const {return p.k;} template <typename T> typename boost::add_reference<typename boost::add_const<T>::type>::type operator()(const pixel<T,cmyk_tag>& p) const {return p.k;} }; } ADOBE_GIL_NAMESPACE_END #endif --- NEW FILE: pixel.hpp --- /* Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ /*************************************************************************************************/ #ifndef GIL_PIXEL_H #define GIL_PIXEL_H //////////////////////////////////////////////////////////////////////////////////////// /// \file /// \brief generic pixel definitions and utilities /// \author Lubomir Bourdev and Hailin Jin \n /// Adobe Systems Incorporated /// Last updated on 11-06-2005 /// //////////////////////////////////////////////////////////////////////////////////////// #include "gil_config.hpp" #include "gil_concept.hpp" #include "channel.hpp" #include <boost/static_assert.hpp> #include <boost/utility/enable_if.hpp> #include <functional> #include "metafunctions.hpp" #include "utilities.hpp" ADOBE_GIL_NAMESPACE_BEGIN namespace detail { /// \addtogroup ColorBase /// \brief Represents a bundle of channel values/references/pointers for a specific color space. /// /// The class is used in three different cases: /// - As a base for pixel values, in which case it instantiates into a set of channel values whose relative ordering is specified by C /// - As a base for the proxy class representing a reference to a planar pixel, in which case it instantiates into a set of channel references /// - In the construction of planar_ptr, the proxy class representing a pointer to a planar pixel, in which case in instantiates into a set of channel pointers /// /// Color bases also provide color-space independent accessors to the channel values/references/pointers, which allows us to perform color-space-independent /// channel operations (see pixel_base for more). /// /// color_base specializations are provided for each color space. See concrete specializations for more. template <typename T, typename C> struct color_base {}; /// \ingroup ColorConvert /// \brief Color Convertion function object. To be specialized for every src/dst color space template <typename T1, typename C1, typename T2, typename C2> struct _color_converter { template <typename P1, typename P2> void operator()(const P1& src, P2& dst); }; /// \addtogroup ChannelAccessor /// /// Returns the N-th logical channel of a pixel. Logical channel indices are the same across related color spaces. For example, the red channel has index 0 in both rgb and bgr /// Specialized for each index and each color space. Instead of this class, it would be easier to provide in each color base specialization a /// member function templated over the channel index. Unfortunately many compilers don't support fully specialized member functions inside partially specialized classes. template <typename CS,int N> struct logical_channel_accessor {}; /// \brief Returns the N-th channel of a pixel as laid down in memory /// \ingroup ChannelAccessor template <typename CS> struct physical_channel_accessor { // pixel has the structure of an array of T. Getting a reference to the i-th value template <typename T> T& operator()(pixel<T,CS>& p,size_t i) const { return ((T*)(&p))[i]; } template <typename T> const T& operator()(const pixel<T,CS>& p,size_t i) const {return ((const T*)(&p))[i]; } // pixel is an array of _references_ to T. Getting the i-th reference template <typename T> T& operator()(pixel<T&,CS>& p,size_t i) const { return *(((T**)((T*)&p))[i]); } template <typename T> const T& operator()(pixel<const T&,CS>& p,size_t i) const { return *(((const T**)((const T*)&p))[i]); } }; /// \brief compile-time recursion for per-channel operations of pixels /// \ingroup Pixel template <int N> struct recur { template <typename P,typename F> static void multiplies_eq(P& p, F x) { recur<N-1>::multiplies_eq(p,x); p.template v<N>()*=x; } template <typename P,typename F> static void divides_eq(P& p, F x) { recur<N-1>::divides_eq(p,x); p.template v<N>()/=x; } template <typename P1,typename P2> static void set_val(P1& p1, const P2& p2) { recur<N-1>::set_val(p1,p2); p1.template v<N>()=p2.template v<N>(); } template <typename P1,typename P2> static void plus_eq(P1& p1, const P2& p2) { recur<N-1>::plus_eq(p1,p2); p1.template v<N>()+=p2.template v<N>(); } template <typename P1,typename P2> static void minus_eq(P1& p1, const P2& p2) { recur<N-1>::minus_eq(p1,p2); p1.template v<N>()-=p2.template v<N>(); } template <typename P,typename T2> static void set_channels(P& p, T2 v) { recur<N-1>::set_channels(p,v); p.template v<N>()=v; } template <typename P1,typename P2> static bool equal_to(const P1& p1, const P2& p2) { return recur<N-1>::equal_to(p1,p2) && p1.template v<N>()==p2.template v<N>(); } template <typename OP,typename P1> static void per_channel_op(const P1& p1, OP& op) { recur<N-1>::per_channel_op(p1,op); op(p1.template v<N>()); } template <typename OP, typename P1,typename P2> static void per_channel_op(const P1& p1, const P2& p2, OP& op) { recur<N-1>::per_channel_op(p1,p2,op); op(p1.template v<N>(), p2.template v<N>()); } template <typename OP, typename P1,typename P2, typename P3> static void per_channel_op(const P1& p1, const P2& p2, const P3& p3, OP& op) { recur<N-1>::per_channel_op(p1,p2,p3,op); op(p1.template v<N>(), p2.template v<N>(), p3.template v<N>()); } template <typename OP,typename P> static void per_channel_set_op(P& dst, OP& op) { recur<N-1>::per_channel_set_op(dst,op); dst.template v<N>()=op(); } template <typename OP,typename P, typename P1> static void per_channel_set_op(P& dst, const P1& src, OP& op) { recur<N-1>::per_channel_set_op(dst,src,op); dst.template v<N>()=op(src.template v<N>()); } template <typename OP,typename P,typename P1, typename P2> static void per_channel_set_op(P& dst, const P1& src1, const P2& src2, OP& op) { recur<N-1>::per_channel_set_op(dst,src1,src2,op); dst.template v<N>()=op(src1.template v<N>(), src2.template v<N>()); } //#ifdef PROVIDE_CONST_VERSIONS template <typename OP,typename P1> static void per_channel_op(const P1& p1, const OP& op) { recur<N-1>::per_channel_op(p1,op); op(p1.template v<N>()); } template <typename OP, typename P1,typename P2> static void per_channel_op(const P1& p1, const P2& p2, const OP& op) { recur<N-1>::per_channel_op(p1,p2,op); op(p1.template v<N>(), p2.template v<N>()); } template <typename OP, typename P1, typename P2, typename P3> static void per_channel_op(const P1& p1, const P2& p2, const P3& p3, const OP& op) { recur<N-1>::per_channel_op(p1,p2,p3,op); op(p1.template v<N>(), p2.template v<N>(), p3.template v<N>()); } template <typename OP,typename P> static void per_channel_set_op(P& dst, const OP& op) { recur<N-1>::per_channel_set_op(dst,op); dst.template v<N>()=op(); } template <typename OP,typename P,typename P1> static void per_channel_set_op(P& dst, const P1& src, const OP& op) { recur<N-1>::per_channel_set_op(dst,src,op); dst.template v<N>()=op(src.template v<N>()); } template <typename OP,typename P,typename P1,typename P2> static void per_channel_set_op(P& dst, const P1& src1, const P2& src2, const OP& op) { recur<N-1>::per_channel_set_op(dst,src1,src2,op); dst.template v<N>()=op(src1.template v<N>(), src2.template v<N>()); } //#endif }; /// \brief termination condition of the compile-time recursion for channel operations on a pixel /// \ingroup Pixel template<> struct recur<-1> { template <typename P, typename F> static void multiplies_eq(P& p, F x) {} template <typename P, typename F> static void divides_eq(P& p, F x) {} template <typename P1,typename P2> static void set_val(P1& p1, const P2& p2) {} template <typename P1,typename P2> static void plus_eq(P1& p1, const P2& p2) {} template <typename P1,typename P2> static void minus_eq(P1& p1, const P2& p2) {} template <typename P, typename T2> static void set_channels(P& p, T2 v) {} template <typename P1,typename P2> static bool equal_to(const P1& p1, const P2& p2) { return true; } template <typename OP,typename P1> static void per_channel_op(const P1&,OP&){} template <typename OP,typename P1,typename P2> static void per_channel_op(const P1&,const P2&,OP&){} template <typename OP,typename P1,typename P2,typename P3> static void per_channel_op(const P1&,const P2&,const P3&,OP&){} template <typename OP,typename P> static void per_channel_set_op(P&,OP&){} template <typename OP,typename P, typename P1> static void per_channel_set_op(P&,const P1&,OP&){} template <typename OP,typename P, typename P1, typename P2> static void per_channel_set_op(P&,const P1&,const P2&,OP&){} //#ifdef PROVIDE_CONST_VERSIONS template <typename OP,typename P1> static void per_channel_op(const P1&,const OP&){} template <typename OP,typename P1,typename P2> static void per_channel_op(const P1&,const P2&,const OP&){} template <typename OP,typename P1,typename P2,typename P3> static void per_channel_op(const P1&,const P2&,const P3&,const OP&){} template <typename OP,typename P> static void per_channel_set_op(P&,const OP&){} template <typename OP,typename P, typename P1> static void per_channel_set_op(P&,const P1&,const OP&){} template <typename OP,typename P, typename P1, typename P2> static void per_channel_set_op(P&,const P1&,const P2&,const OP&){} //#endif }; /// \brief compile-time recursion for min/max channel /// \ingroup Pixel template <int N> struct min_max_recur { template <typename P> static typename P::channel_value_type max_(const P& p) { return std::max(min_max_recur<N-1>::max_(p),p.template v<N>()); } template <typename P> static typename P::channel_value_type min_(const P& p) { return std::min(min_max_recur<N-1>::min_(p),p.template v<N>()); } }; /// \brief termination condition of the compile-time recursion for min/max channel /// \ingroup Pixel template <> struct min_max_recur<0> { template <typename P> static typename P::channel_value_type max_(const P& p) { return p.template v<0>(); } template <typename P> static typename P::channel_value_type min_(const P& p) { return p.template v<0>(); } }; } // namespace detail //@{ /// \name Pixel global functions /// /// Functions defined for any class that models PixelConcept /// \ingroup Pixel template <typename P> typename P::channel_value_type max_channel(const P& p) { return detail::min_max_recur<P::max_channel_index>::max_(p); } template <typename P> typename P::channel_value_type min_channel(const P& p) { return detail::min_max_recur<P::max_channel_index>::min_(p); } template <typename P> void set_channels(P& p, const typename P::channel_type& v) { detail::recur<P::max_channel_index>::set_channels(p,v); } /// \brief returns the alpha channel value for a pixel. Default returns 100% opaque. Overload for color spaces containing alpha template <typename P> typename P::channel_value_type alpha(const P& p) { return channel_traits<typename P::channel_type>::max(); } // no alpha = 100% alpha template <typename OP,typename P1> void per_channel_set_op(OP& op, P1& p1) { detail::recur<P1::max_channel_index>::per_channel_set_op(p1,op); } template <typename OP,typename P1,typename P2> void per_channel_set_op(OP& op, P1& p1,const P2& p2) { detail::recur<P1::max_channel_index>::per_channel_set_op(p1,p2,op); } template <typename OP,typename P1,typename P2,typename P3> void per_channel_set_op(OP& op, P1& p1,const P2& p2,const P3& p3) { detail::recur<P1::max_channel_index>::per_channel_set_op(p1,p2,p3,op); } template <typename OP,typename P1> void per_channel_op(OP& op,const P1& p1) { detail::recur<P1::max_channel_index>::per_channel_op(p1,op); } template <typename OP,typename P1,typename P2> void per_channel_op(OP& op,const P1& p1,const P2& p2) { detail::recur<P1::max_channel_index>::per_channel_op(p1,p2,op); } template <typename OP,typename P1,typename P2,typename P3> void per_channel_op(OP& op,const P1& p1,const P2& p2,const P3& p3){ detail::recur<P1::max_channel_index>::per_channel_op(p1,p2,p3,op); } //#ifdef PROVIDE_CONST_VERSIONS template <typename OP,typename P1> void per_channel_set_op(const OP& op, P1& p1) { detail::recur<P1::max_channel_index>::per_channel_set_op(p1,op); } template <typename OP,typename P1,typename P2> void per_channel_set_op(const OP& op, P1& p1,const P2& p2) { detail::recur<P1::max_channel_index>::per_channel_set_op(p1,p2,op); } template <typename OP,typename P1,typename P2,typename P3> void per_channel_set_op(const OP& op, P1& p1,const P2& p2,const P3& p3) { detail::recur<P1::max_channel_index>::per_channel_set_op(p1,p2,p3,op); } template <typename OP,typename P1> void per_channel_op(const OP& op,const P1& p1) { detail::recur<P1::max_channel_index>::per_channel_op(p1,op); } template <typename OP,typename P1,typename P2> void per_channel_op(const OP& op,const P1& p1,const P2& p2) { detail::recur<P1::max_channel_index>::per_channel_op(p1,p2,op); } template <typename OP,typename P1,typename P2,typename P3> void per_channel_op(const OP& op,const P1& p1,const P2& p2,const P3& p3){ detail::recur<P1::max_channel_index>::per_channel_op(p1,p2,p3,op); } //#endif //@} /// \brief Does a static assert that the two pixel values, planar references or planar pointers are compatible. /// /// In particular, their channel types are the same (ignoring reference, constness, and pointerness), and their base color spaces are the same /// (ignoring reference tags and bgr vs rgb ordering) #define STATIC_ASSERT_COMPATIBLE(T1,C1,T2,C2) BOOST_STATIC_ASSERT( \ (are_color_spaces_compatible<C1,C2>::value && \ are_channels_compatible<typename boost::remove_pointer<T1>::type,typename boost::remove_pointer<T1>::type>::value )) /// \addtogroup Pixel /// /// Models: PixelConcept /// /// Pixels are first class objects; dereferencing, assignment, copy construction, etc. are /// defined and behave as expected. /// /// \ingroup Pixel /// \brief GIL's model of PixelConcept /// /// Pixel values are represented as specializations of the pixel struct. /// Multi-channel pixels may have different channel ordering (RGB vs BGR for example). /// Each channel ordering is represented as a separate specialization of pixel /// /// Interleaved pixels have channels that are consecutive in memory. Therefore their pointers and references /// are built-in pointers and references to the value structs. Planar pixels, on the other hand, represent /// non-consecutive channels and thus pointers and references to planar pixels are represented by special classes. /// /// Pointers, references, values, color spaces and channel types of pixels are defined in iterator_traits /// of pixel iterators. /// Its base class, color_base, provides color-space specific channels. The pixel class /// provides per-channel operations that depend on the number of components but not on /// the specifics of the color space. For example, the same code is used to compare two /// BGR pixels, two LAB pixels and two planar pointers to RGB pixels. /// Per-channel operations are implemented as compile-time recursions. /// The binary per-channel operations pair channels semantically and not based on their order /// in memory. For example a binary operation between RGB and BGR color bases will properly pair /// the first channel of RGB to the third channel of BGR. This is done by using the /// semantic channel accessors v<N>() /// /// Note that pixel<T&,C> represents a bundle of references to channels. It is used as the /// reference proxy class for planar pixels. Similarly, pixel<T*,C>, a bundle of pointers to channels, /// is used in the implementation of planar_ptr<T,C>, the pointer proxy class for planar pixels. template <typename T, typename C> struct pixel : public detail::color_base<T,C> { private: typedef detail::color_base<T,C> parent_type; public: typedef C color_space_type; typedef T channel_type; typedef typename boost::add_const<channel_type>::type channel_const_type; typedef typename boost::add_reference<channel_type>::type channel_reference; typedef typename boost::add_reference<channel_const_type>::type channel_const_reference; typedef typename boost::remove_reference<channel_type>::type channel_value_type; typedef pixel<channel_value_type,color_space_type> pixel_value_type; // type to return when returning by value template <int N> struct nth_channel_type { typedef channel_type type; }; static const int max_channel_index=color_space_type::num_channels-1; pixel(){} explicit pixel(channel_type v) { set_channels(*this,v); } pixel(channel_type v0, channel_type v1) : parent_type(v0,v1) {} pixel(channel_type v0, channel_type v1, channel_type v2) : parent_type(v0,v1,v2) {} pixel(channel_type v0, channel_type v1, channel_type v2, channel_type v3) : parent_type(v0,v1,v2,v3) {} pixel(channel_type v0, channel_type v1, channel_type v2, channel_type v3, channel_type v4) : parent_type(v0,v1,v2,v3,v4) {} pixel(const pixel& p) : parent_type(p) {} template <typename T1, typename C1> pixel(const pixel<T1,C1>& p) : parent_type(p) {STATIC_ASSERT_COMPATIBLE(T,C,T1,C1);} template <typename T1, typename C1> pixel( pixel<T1,C1>& p) : parent_type(p) {STATIC_ASSERT_COMPATIBLE(T,C,T1,C1);} // copy constructor used when T is a reference pixel& operator=(const pixel& p) { detail::recur<max_channel_index>::set_val(*this,p); return *this; } template <typename T1, typename C1> pixel& operator=(const pixel<T1,C1>& p) { STATIC_ASSERT_COMPATIBLE(T,C,T1,C1); detail::recur<max_channel_index>::set_val(*this,p); return *this; } channel_reference operator[](size_t i) { return detail::physical_channel_accessor<C>()(*this,i); } channel_const_reference operator[](size_t i) const { return detail::physical_channel_accessor<C>()(*this,i); } template <typename T1, typename C1> bool operator==(const pixel<T1,C1>& p) const { STATIC_ASSERT_COMPATIBLE(T,C,T1,C1); return detail::recur<max_channel_index>::equal_to(*this,p); } template <typename T1, typename C1> bool operator!=(const pixel<T1,C1>& p) const { return !(*this==p); } template <int N> channel_const_reference v() const { return detail::logical_channel_accessor<C,N>()(*this); } template <int N> channel_reference v() { return detail::logical_channel_accessor<C,N>()(*this); } }; //@{ /// \name Pixel operator overloads /// \brief operators +=, -=, *=, /=, +, -, /, * for gil::pixel /// /// Unfortunately they can be defined only for gil::pixel. Generic implementations would have to take the pixel as a template parameter and /// would be indistinguishable from the above operators applied to any other object. /// User-defined pixels must provide separate implementations of these operators. /// \ingroup Pixel template <typename T1, typename CS1,typename T2,typename CS2> inline pixel<T1,CS1>& operator+=(pixel<T1,CS1>& p1,const pixel<T2,CS2>& p2) { STATIC_ASSERT_COMPATIBLE(T1,CS1,T2,CS2); detail::recur<CS1::num_channels-1>::plus_eq(p1,p2); return p1; } template <typename T1, typename CS1,typename T2,typename CS2> inline pixel<T1,CS1>& operator-=(pixel<T1,CS1>& p1,const pixel<T2,CS2>& p2) { STATIC_ASSERT_COMPATIBLE(T1,CS1,T2,CS2); detail::recur<CS1::num_channels-1>::minus_eq(p1,p2); return p1; } template <typename T, typename CS,typename S> inline pixel<T,CS>& operator*=(pixel<T,CS>& p,const S& x) {detail::recur<CS::num_channels-1>::multiplies_eq(p,x); return p; } template <typename T, typename CS,typename S> inline pixel<T,CS>& operator/=(pixel<T,CS>& p,const S& x) {detail::recur<CS::num_channels-1>::divides_eq(p,x); return p; } template <typename T1, typename CS1,typename T2,typename CS2> inline typename pixel<T1,CS1>::pixel_value_type operator+(const pixel<T1,CS1>& p1,const pixel<T2,CS2>& p2) { typename pixel<T1,CS1>::pixel_value_type tmp(p1); tmp+=p2; return tmp; } template <typename T1, typename CS1,typename T2,typename CS2> inline typename pixel<T1,CS1>::pixel_value_type operator-(const pixel<T1,CS1>& p1,const pixel<T2,CS2>& p2) { typename pixel<T1,CS1>::pixel_value_type tmp(p1); tmp-=p2; return tmp; } template <typename T, typename CS, typename S> inline typename pixel<T,CS>::pixel_value_type operator/(const pixel<T,CS>& p, const S& x) { typename pixel<T,CS>::pixel_value_type tmp(p); tmp/=x; return tmp; } template <typename T, typename CS, typename S> inline typename pixel<T,CS>::pixel_value_type operator*(const pixel<T,CS>& p, const S& x) { typename pixel<T,CS>::pixel_value_type tmp(p); tmp*=x; return tmp; } //@} ADOBE_GIL_NAMESPACE_END #endif --- NEW FILE: algorithm.hpp --- /* Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ /*************************************************************************************************/ #ifndef GIL_ALGORITHMS_H #define GIL_ALGORITHMS_H #include "gil_config.hpp" #include "gil_concept.hpp" #include <cassert> #include <algorithm> #include "image.hpp" #include "variant.hpp" //////////////////////////////////////////////////////////////////////////////////////// /// \file /// \brief Some basic STL-style algorithms when applied to image views /// \author Lubomir Bourdev and Hailin Jin \n /// Adobe Systems Incorporated /// //////////////////////////////////////////////////////////////////////////////////////// namespace std { //@{ /// \name STL optimizations /// \brief overloads of STL algorithms allowing more efficient implementation when used with GIL constructs /// \ingroup Algorithms /// \brief Copy when both src and dst are interleaved and of the same type can be just memmove template<typename T, typename CS> inline GIL::pixel<T,CS>* copy(GIL::pixel<T,CS>* first, GIL::pixel<T,CS>* last, GIL::pixel<T,CS>* dst) { return (GIL::pixel<T,CS>*)std::copy((unsigned char*)first,(unsigned char*)last, (unsigned char*)dst); } /// \brief Copy when both src and dst are interleaved and of the same type can be just memmove template<typename T, typename CS> inline GIL::pixel<T,CS>* copy(GIL::pixel<const T,CS>* first, GIL::pixel<const T,CS>* last, GIL::pixel<T,CS>* dst) { return (GIL::pixel<T,CS>*)std::copy((unsigned char*)first,(unsigned char*)last, (unsigned char*)dst); } } ADOBE_GIL_NAMESPACE_BEGIN namespace detail { template <typename I, typename O> struct copy_fn { I operator()(I first, I last, O dst) const { return std::copy(first,last,dst); } }; } ADOBE_GIL_NAMESPACE_END namespace std { /// \brief Copy when both src and dst are planar pointers is copy for each channel template<typename T1, typename CS1, typename T2, typename CS2> inline GIL::planar_ptr<T2,CS2> copy(GIL::planar_ptr<T1,CS1> first, GIL::planar_ptr<T1,CS1> last, GIL::planar_ptr<T2,CS2> dst) { GIL::gil_function_requires<GIL::ChannelsCompatibleConcept<T1,T2> >(); GIL::gil_function_requires<GIL::ColorSpacesCompatibleConcept<CS1,CS2> >(); per_channel_op(GIL::detail::copy_fn<T1*,T2*>(),first.p,last.p,dst.p); return dst+(last-first); } } ADOBE_GIL_NAMESPACE_BEGIN namespace detail { /// Does a copy-n. If the inputs contain image iterators, performs a copy at each row using the row iterators /// \ingroup Algorithms template <typename I, typename O> struct copier_n { void operator()(I src, ptrdiff_t n, O dst) const { std::copy(src,src+n, dst); } }; /// Source range is delimited by image iterators /// \ingroup Algorithms template <typename IL, typename O> // IL Models ConstXYLocatorConcept, O Models PixelIteratorConcept struct copier_n<GIL::pixel_image_iterator<IL>,O> { void operator()(GIL::pixel_image_iterator<IL> src, ptrdiff_t n, O dst) const { GIL::gil_function_requires<GIL::XYLocatorConcept<IL> >(); GIL::gil_function_requires<GIL::MutablePixelIteratorConcept<O> >(); while (n>0) { ptrdiff_t numToCopy=std::min<const ptrdiff_t>(n, src.width()-src.x()); copy_n(src.x_it(), numToCopy, dst); dst+=numToCopy; src+=numToCopy; n-=numToCopy; } } }; /// Destination range is delimited by image iterators /// \ingroup Algorithms template <typename I, typename OL> // I Models ConstPixelIteratorConcept, OL Models XYLocatorConcept struct copier_n<I,GIL::pixel_image_iterator<OL> > { void operator()(I src, ptrdiff_t n, GIL::pixel_image_iterator<OL> dst) const { GIL::gil_function_requires<GIL::PixelIteratorConcept<I> >(); GIL::gil_function_requires<GIL::MutableXYLocatorConcept<OL> >(); while (n>0) { ptrdiff_t numToCopy=std::min<const ptrdiff_t>(n,dst.width()-dst.x()); copy_n(src, numToCopy, dst.x_it()); dst+=numToCopy; src+=numToCopy; n-=numToCopy; } } }; /// Both source and destination ranges are delimited by image iterators /// \ingroup Algorithms template <typename IL, typename OL> struct copier_n<GIL::pixel_image_iterator<IL>,GIL::pixel_image_iterator<OL> > { void operator()(GIL::pixel_image_iterator<IL> src, ptrdiff_t n, GIL::pixel_image_iterator<OL> dst) const { GIL::gil_function_requires<GIL::XYLocatorConcept<IL> >(); GIL::gil_function_requires<GIL::MutableXYLocatorConcept<OL> >(); if (src.x()!=dst.x() || src.width()!=dst.width()) { while(n-->0) { *dst++=*src++; } } while (n>0) { ptrdiff_t numToCopy=std::min<const ptrdiff_t>(n,dst.width()-dst.x()); copy_n(src.x_it(), numToCopy, dst.x_it()); dst+=numToCopy; src+=numToCopy; n-=numToCopy; } } }; } ADOBE_GIL_NAMESPACE_END namespace std { /// \brief std::copy(I1,I1,I2) with I1 and I2 being a pixel_image_iterator /// /// Invoked when one calls std::copy(I1,I1,I2) with I1 and I2 being a pixel_image_iterator (which is /// a 1D iterator over the pixels in an image). Attempts to demote the source and destination /// iterators to simpler/faster types if the corresponding range is contiguous. /// For contiguous images (i.e. images that have /// no alignment gap at the end of each row) it is more efficient to use the underlying /// pixel iterator that does not check for the end of rows. If the underlying pixel iterator /// happens to be a fundamental planar/interleaved pointer, the call may further resolve /// to memmove. Otherwise it resolves to copying each row using the underlying pixel iterator template <typename IL, typename OL> inline GIL::pixel_image_iterator<OL> copy(GIL::pixel_image_iterator<IL> first, GIL::pixel_image_iterator<IL> last, GIL::pixel_image_iterator<OL> dst) { GIL::gil_function_requires<GIL::XYLocatorConcept<IL> >(); GIL::gil_function_requires<GIL::MutableXYLocatorConcept<OL> >(); ptrdiff_t n=last-first; if (first.is_contiguous()) { if (dst.is_contiguous()) GIL::detail::copier_n<typename IL::x_iterator,typename OL::x_iterator>()(first.x_it(),n, dst.x_it()); else GIL::detail::copier_n<typename IL::x_iterator,GIL::pixel_image_iterator<OL> >()(first.x_it(),n, dst); } else { if (dst.is_contiguous()) GIL::detail::copier_n<GIL::pixel_image_iterator<IL>,typename OL::x_iterator>()(first,n, dst.x_it()); else GIL::detail::copier_n<GIL::pixel_image_iterator<IL>,GIL::pixel_image_iterator<OL> >()(first,n,dst); } return dst+n; } /// \brief std::fill(I,I,V) with I being a pixel_image_iterator /// /// Invoked when one calls std::fill(I,I,V) with I being a pixel_image_iterator (which is /// a 1D iterator over the pixels in an image). For contiguous images (i.e. images that have /// no alignment gap at the end of each row) it is more efficient to use the underlying /// pixel iterator that does not check for the end of rows. For non-contiguous images fill /// resolves to fill of each row using the underlying pixel iterator, which is still faster template <typename IL, typename V> void fill(GIL::pixel_image_iterator<IL> first, GIL::pixel_image_iterator<IL> last, const V& val) { GIL::gil_function_requires<GIL::MutableXYLocatorConcept<IL> >(); if (first.is_contiguous()) { std::fill(first.x_it(), last.x_it(), val); } else { // fill row by row ptrdiff_t n=last-first; while (n>0) { ptrdiff_t numToDo=std::min<const ptrdiff_t>(n,(ptrdiff_t)(first.width()-first.x())); fill_n(first.x_it(), numToDo, val); first+=numToDo; n-=numToDo; } } } //@} } ADOBE_GIL_NAMESPACE_BEGIN //@{ /// \name copy_pixels /// \brief std::copy for image views namespace detail { template <bool COMPATIBLE> struct copy_pixels_fn1 { template <typename V1, typename V2> static void apply(const V1& src, const V2& dst) { copy_pixels(src,dst); } }; // copy_pixels invoked on incompatible images template <> struct copy_pixels_fn1<false> { template <typename V1, typename V2> static void apply(const V1& src, const V2& dst) { throw std::bad_cast();} }; struct copy_pixels_fn { typedef void result_type; template <typename V1, typename V2> result_type operator()(const V1& src, const V2& dst) const { copy_pixels_fn1<are_pixels_compatible<typename V1::value_type, typename V2::value_type>::value>::apply(src,dst); } }; } /// \ingroup Algorithms template <typename V1, typename V2> void copy_pixels(const V1& src, const V2& dst) { assert(src.dimensions()==dst.dimensions()); std::copy(src.begin(),src.end(),dst.begin()); // std::copy will choose the optimal method (see stl_override.h) } template <typename C1, // Model image view concept space typename V2> // Model image view void copy_pixels(const variant<C1>& src, const V2& dst) { src.apply_visitor(GIL::bind2nd(GIL::detail::copy_pixels_fn(), dst)); } template <typename V1, // Model image view typename C2> // Model non-const image view concept space void copy_pixels(const V1& src, const variant<C2>& dst) { dst.apply_visitor(GIL::bind1st(GIL::detail::copy_pixels_fn(), src)); } template <typename C1, typename C2> // Model image view concept spaces void copy_pixels(const variant<C1>& src, const variant<C2>& dst) { apply_visitor(src,dst,detail::copy_pixels_fn()); } //@} namespace detail { // If the two color spaces are compatible, copy_and_convert is just copy template <bool COMPATIBLE> struct copy_and_convert_pixels_fn1 { template <typename V1, typename V2> static void apply(const V1& src, const V2& dst) { copy_pixels(src,dst); } }; // when the two color spaces are incompatible, a color conversion is performed template <> struct copy_and_convert_pixels_fn1<false> { template <typename V1, typename V2> static void apply(const V1& src, const V2& dst) { copy_pixels(color_convert_view<typename V2::value_type>(src),dst); } }; struct copy_and_convert_pixels_fn { typedef void result_type; template <typename V1, typename V2> result_type operator()(const V1& src, const V2& dst) const { assert(src.dimensions()==dst.dimensions()); copy_and_convert_pixels_fn1<are_pixels_compatible<typename V1::value_type, typename V2::value_type>::value>::apply(src,dst); } }; } //@{ /// \name copy_and_convert_pixels /// \brief copies src view into dst view, color converting if necessary /// \ingroup Algorithms template <typename V1, typename V2> void copy_and_convert_pixels(const V1& src, const V2& dst) { detail::copy_and_convert_pixels_fn()(src,dst); } template <typename C1, // Model image view concept space typename V2> // Model image view void copy_and_convert_pixels(const variant<C1>& src, const V2& dst) { src.apply_visitor(GIL::bind2nd(detail::copy_and_convert_pixels_fn(), dst)); } template <typename V1, // Model image view typename C2> // Model non-const image view concept space void copy_and_convert_pixels(const V1& src, const variant<C2>& dst) { dst.apply_visitor(GIL::bind1st(detail::copy_and_convert_pixels_fn(), src)); } template <typename C1, typename C2> // Model image view concept spaces void copy_and_convert_pixels(const variant<C1>& src, const variant<C2>& dst) { apply_visitor(src,dst,detail::copy_and_convert_pixels_fn()); } //@} //@{ /// \name fill_pixels /// \brief std::fill for image views namespace detail { template <bool COMPATIBLE> struct fill_pixels_fn1 { template <typename V, typename VAL> static void apply(const V& src, const VAL& val) { fill_pixels(src,val); } }; // copy_pixels invoked on incompatible images template <> struct fill_pixels_fn1<false> { template <typename V, typename VAL> static void apply(const V& src, const VAL& val) { throw std::bad_cast();} }; template <typename VAL> struct fill_pixels_fn { fill_pixels_fn(const VAL& val) : _val(val) {} typedef void result_type; template <typename V> result_type operator()(const V& img_view) const { fill_pixels_fn1<are_pixels_compatible<typename V::value_type, VAL>::value>::apply(img_view,_val); } VAL _val; }; } /// \ingroup Algorithms template <typename V, typename VAL> void fill_pixels(const V& img_view, const VAL& val) { if (img_view.begin().is_contiguous()) { std::fill(img_view.begin().x_it(), img_view.end().x_it(), val); } else { for (int y=0; y<img_view.height(); ++y) std::fill(img_view.row_begin(y),img_view.row_end(y),val); } } template <typename C, typename VAL> void fill_pixels(const variant<C>& img_view, const VAL& val) { img_view.apply_visitor(GIL::detail::fill_pixels_fn<VAL>(val)); } //@} //@{ /// \name for_each_pixel /// \brief std::for_each for image views /// \ingroup Algorithms /// For contiguous images (i.e. images that have no alignment gap at the end of each row) it is /// more efficient to use the underlying pixel it... [truncated message content] |
From: Foster B. <fos...@us...> - 2006-01-09 19:40:55
|
Update of /cvsroot/adobe-source/adobe-source/adobe/gil/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21090/core Log Message: Directory /cvsroot/adobe-source/adobe-source/adobe/gil/core added to the repository |
From: Foster B. <fos...@us...> - 2006-01-09 19:40:20
|
Update of /cvsroot/adobe-source/adobe-source/adobe/bin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20995 Added Files: leconv.exe Log Message: asl 1.0.12 stragglers --- NEW FILE: leconv.exe --- (This appears to be a binary file; contents omitted.) |
From: Foster B. <fos...@us...> - 2006-01-09 19:38:07
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/gil/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20413 Added Files: algorithm.hpp channel.hpp cmyk.hpp color_convert.hpp gil_concept.hpp gil_config.hpp gray.hpp image.hpp image_view_factory.hpp lab.hpp metafunctions.hpp pixel.hpp pixel_iterator.hpp rgb.hpp rgba.hpp typedefs.hpp utilities.hpp variant.hpp Log Message: asl 1.0.12 stragglers --- NEW FILE: image.hpp --- /* Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ /*************************************************************************************************/ #ifndef GIL_IMAGE_H #define GIL_IMAGE_H //////////////////////////////////////////////////////////////////////////////////////// /// \file /// \brief Templated image /// \author Lubomir Bourdev and Hailin Jin \n /// Adobe Systems Incorporated /// /// //////////////////////////////////////////////////////////////////////////////////////// #include "gil_config.hpp" #include <memory> #include "pixel_iterator.hpp" ADOBE_GIL_NAMESPACE_BEGIN template <typename V1, typename V2> void copy_pixels(const V1& src, const V2& dst); #ifdef _MSC_VER #pragma warning(push) #pragma warning(disable : 4244) // conversion from 'gil::image<V,ALLOC>::coord_type' to 'int', possible loss of data (visual studio compiler doesn't realize that the two types are the same) #endif //////////////////////////////////////////////////////////////////////////////////////// /// \class image_view /// \ingroup ImageView /// \brief A lightweight object that interprets memory as a 2D array of pixels. /// /// Image view consists of a pixel 2D locator (defining the mechanism for navigating in 2D) /// and the image dimensions. /// /// Image views to images are what ranges are to STL containers. They are lightweight objects, /// that don't own the pixels. It is the user's responsibility that the underlying data remains /// valid for the lifetime of the image view. /// /// Similar to iterators and ranges, constness of views does not extend to constness of pixels. /// A const image_view does not allow changing its location in memory (resizing, moving) but does /// not prevent one from changing the pixels. The latter requires an image view whose value_type /// is const. /// /// Images have interfaces consistent with STL 1D random access containers, so they can be used /// directly in STL algorithms like: /// std::fill(img.begin(), img.end(), red_pixel); /// or /// std::transform(img.begin(), img.end(), dst.begin(), color_converter<rgb8_pixel>()); // convert src to RGB /// /// In addition, horizontal, vertical and 2D random access iterators are provided. /// //////////////////////////////////////////////////////////////////////////////////////// template <typename LOC> class pixel_image_iterator; template <typename LOC> // Models 2D Pixel Locator class image_view { GIL_CLASS_REQUIRE(LOC, GIL, XYLocatorConcept); public: // typedefs required by ConstRandomAccessNDImageViewConcept static const size_t num_dimensions=2; typedef typename LOC::value_type value_type; typedef typename LOC::reference reference; // result of dereferencing typedef typename LOC::coord_type coord_type; // 1D difference type (same for all dimensions) typedef coord_type difference_type; // result of operator-(1d_iterator,1d_iterator) typedef value_type domain_type; typedef typename LOC::point_type point_type; typedef LOC locator; typedef image_view<typename LOC::const_type> const_type; // same as this type, but over const values template <size_t D> struct axis { typedef typename LOC::template axis<D>::coord_type coord_type; // difference_type along each dimension typedef typename LOC::template axis<D>::iterator iterator; // 1D iterator type along each dimension }; typedef pixel_image_iterator<LOC> iterator; // 1D iterator type for each pixel left-to-right inside top-to-bottom typedef std::reverse_iterator<iterator> reverse_iterator; typedef size_t size_type; // typedefs required by ConstRandomAccess2DImageViewConcept typedef locator xy_locator; typedef typename xy_locator::x_iterator x_iterator; // pixel iterator along a row typedef typename xy_locator::y_iterator y_iterator; // pixel iterator along a column typedef typename xy_locator::x_coord_type x_coord_type; typedef typename xy_locator::y_coord_type y_coord_type; // typedefs required by ConstRandomAccess2DImageViewConcept typedef image_view<typename LOC::dynamic_step_type> dynamic_step_type; typedef typename LOC::channel_type channel_type; // type of the channel of a pixel typedef typename LOC::color_space_type color_space_type;// tag indicating the color space of an image image_view() : _dimensions(0,0) {} template <typename VIEW> image_view(const VIEW& iv) : _dimensions(iv.dimensions()), _pixels(iv.pixels()) {} template <typename L2> image_view(const point_type& sz , const L2& loc) : _dimensions(sz), _pixels(loc) {} template <typename L2> image_view(coord_type width, coord_type height, const L2& loc) : _dimensions(x_coord_type(width),y_coord_type(height)), _pixels(loc) {} image_view(const point_type& sz , const x_iterator& x_it, coord_type row_bytes) : _dimensions(sz), _pixels(x_it, row_bytes) {} image_view(coord_type width, coord_type height, const x_iterator& x_it, coord_type row_bytes) : _dimensions(x_coord_type(width),y_coord_type(height)), _pixels(x_it, row_bytes) {} template <typename VIEW> image_view& operator=(const VIEW& iv) { _pixels=iv.pixels(); _dimensions=iv.dimensions(); return *this; } image_view& operator=(const image_view& iv) { _pixels=iv.pixels(); _dimensions=iv.dimensions(); return *this; } template <typename VIEW> bool operator==(const VIEW& v) const { return pixels()==v.pixels() && dimensions()==v.dimensions(); } template <typename VIEW> bool operator!=(const VIEW& v) const { return !(*this==v); } template <typename L2> friend void swap(image_view<L2>& x, image_view<L2>& y); const point_type& dimensions() const { return _dimensions; } const locator& pixels() const { return _pixels; } x_coord_type width() const { return dimensions().x; } y_coord_type height() const { return dimensions().y; } difference_type row_bytes() const { return _pixels.row_bytes(); } // number of bytes per row difference_type pix_bytestep() const { return _pixels.pix_bytestep(); } // number of bytes between two adjacent pixels on the same row //\{@ /// \name 1D navigation size_type size() const { return width()*height(); } iterator begin() const { return iterator(_pixels,_dimensions.x); } iterator end() const { return begin()+size(); } // potential performance problem! reverse_iterator rbegin() const { return reverse_iterator(end()); } reverse_iterator rend() const { return reverse_iterator(begin()); } reference operator[](difference_type i) const { return begin()[i]; } // potential performance problem! iterator at(const point_type& p)const { return begin()+p.y*width()+p.x; } iterator at(x_coord_type x, y_coord_type y)const { return begin()+y*width()+x; } //\}@ //\{@ /// \name 2-D navigation reference operator()(const point_type& p) const { return _pixels(p.x,p.y); } reference operator()(x_coord_type x, y_coord_type y)const { return _pixels(x,y); } template <size_t D> typename axis<D>::iterator axis_iterator(const point_type& p) const { return _pixels.axis_iterator<D>(p); } xy_locator xy_at(x_coord_type x, y_coord_type y) const { return _pixels+point_type(x_coord_type(x),y_coord_type(y)); } locator xy_at(const point_type& p) const { return _pixels+p; } //\}@ //\{@ /// \name X navigation x_iterator x_at(x_coord_type x, y_coord_type y) const { return _pixels.x_at(x,y); } x_iterator x_at(const point_type& p) const { return _pixels.x_at(p); } x_iterator row_begin(y_coord_type y) const { return x_at(0,y); } x_iterator row_end(y_coord_type y) const { return x_at(width(),y); } //\}@ //\{@ /// \name Y navigation y_iterator y_at(x_coord_type x, y_coord_type y) const { return xy_at(x,y).y(); } y_iterator y_at(const point_type& p) const { return xy_at(p).y(); } y_iterator col_begin(x_coord_type x) const { return y_at(x,0); } y_iterator col_end(x_coord_type x) const { return y_at(x,height()); } //\}@ private: template <typename L2> friend class image_view; point_type _dimensions; xy_locator _pixels; }; template <typename L2> inline void swap(image_view<L2>& x, image_view<L2>& y) { std::swap(x._dimensions,y._dimensions); std::swap(x._pixels, y._pixels); // TODO: Extend further } //////////////////////////////////////////////////////////////////////////////////////// /// \class image /// \ingroup Image /// \brief container interface over image view /// /// image is a wrapper over image_view that owns the data. /// Images have deep copy constructor, operator= and operator==. /// A constant image does not allow for modifying its pixels. //////////////////////////////////////////////////////////////////////////////////////// template <typename V2,typename ALLOC2> void swap(image<V2,ALLOC2>& im1,image<V2,ALLOC2>& im2); template <typename V, typename ALLOC=std::allocator<unsigned char> > class image { public: typedef ALLOC allocator_type; typedef V view_type; typedef typename view_type::const_type const_view_type; typedef typename view_type::point_type point_type; typedef typename view_type::coord_type coord_type; typedef coord_type x_coord_type; typedef coord_type y_coord_type; typedef typename view_type::iterator iterator; typedef iterator pointer; typedef typename const_view_type::iterator const_iterator; typedef const_iterator const_pointer; typedef typename view_type::difference_type difference_type; typedef typename view_type::value_type value_type; typedef typename view_type::reference reference; typedef typename const_view_type::reference const_reference; typedef typename view_type::size_type size_type; typedef typename view_type::reverse_iterator reverse_iterator; typedef typename const_view_type::reverse_iterator const_reverse_iterator; const_iterator begin() const { return const_view(*this).begin(); } const_iterator end() const { return const_view(*this).end(); } const_reverse_iterator rbegin() const { return const_view(*this).rbegin(); } const_reverse_iterator rend() const { return const_view(*this).rend(); } iterator begin() { return _view.begin(); } iterator end() { return _view.end(); } reverse_iterator rbegin() { return _view.rbegin(); } reverse_iterator rend() { return _view.rend(); } reference operator[](size_type i) { return _view[i]; } const_reference operator[](size_type i) const { return const_view(*this)[i]; } // Warning: Slow!! size_type size() const { return _view.size(); } size_type max_size() const { return size(); } bool empty() const { return size()==0; } const point_type& dimensions() const { return _view.dimensions(); } x_coord_type width() const { return _view.width(); } y_coord_type height() const { return _view.height(); } image() {} // image that allocates own data. Calls new/delete[] image(const point_type& dimensions, unsigned int alignment=1) { create_with_own_data(dimensions,alignment); } image(x_coord_type width, y_coord_type height, unsigned int alignment=1) { create_with_own_data(point_type(width,height),alignment); } image(const image& img) : _alloc(img._alloc) { create_with_own_data(const_view(img).dimensions()); // TODO: Use the same alignment copy_pixels(const_view(img),_view); } template <typename V2,typename ALLOC2> image(const image<V2,ALLOC2>& img) :_alloc(img._alloc) { create_with_own_data(view(img).dimensions()); copy_pixels(view(img),_view); } template <typename IMG> image& operator=(const IMG& img) { image tmp(img); swap(tmp); return *this; } image& operator=(const image& img) { image tmp(img); swap(tmp); return *this; } ~image() { size_t size_in_bytes=_view.row_bytes()*_view.height(); if(std::iterator_traits<typename V::x_iterator>::is_planar) size_in_bytes*=V::color_space_type::num_channels; _alloc.deallocate((unsigned char*)&(_view(0,0)[0]),size_in_bytes); } template <typename V2, typename ALLOC2> friend const V2& view(image<V2,ALLOC2>& img); template <typename V2, typename ALLOC2> friend const typename V2::const_type& const_view(const image<V2,ALLOC2>& img); ALLOC& allocator() { return _alloc; } ALLOC const& allocator() const { return _alloc; } template <typename V2,typename ALLOC2> friend void swap(image<V2,ALLOC2>& im1,image<V2,ALLOC2>& im2); void swap(image& img) { GIL::swap(*this,img); } // required by boost::MutableContainerConcept private: view_type _view; // contains pointer to the pixels, the image size and ways to navigate pixels allocator_type _alloc; template <bool> class is_planar {}; void create_with_own_data(const point_type& dimensions, unsigned int alignment=1) { BOOST_STATIC_ASSERT(!has_dynamic_step<typename V::x_iterator>::value); create_with_own_data_(dimensions,alignment,is_planar<std::iterator_traits<typename V::x_iterator>::is_planar>()); } void create_with_own_data_(const point_type& dimensions, unsigned int alignment, is_planar<false>) { size_t rowsize_in_bytes=get_aligned(dimensions.x*sizeof(typename V::value_type),alignment); unsigned char* tmp=_alloc.allocate(rowsize_in_bytes*dimensions.y); try { _view=V(dimensions,typename V::x_iterator(tmp),rowsize_in_bytes); } catch(...) { _alloc.deallocate(tmp, rowsize_in_bytes*dimensions.y); throw; } } void create_with_own_data_(const point_type& dimensions, unsigned int alignment, is_planar<true>) { size_t planesize_in_bytes=get_aligned(dimensions.x*dimensions.y*sizeof(typename V::channel_type),alignment); size_t image_size_in_bytes=planesize_in_bytes*V::color_space_type::num_channels; unsigned char* tmp=_alloc.allocate(image_size_in_bytes); try { _view=V(dimensions, typename V::x_iterator(tmp,planesize_in_bytes),dimensions.x*sizeof(typename V::channel_type)); } catch(...) { _alloc.deallocate(tmp, image_size_in_bytes); throw; } } }; template <typename V1,typename V2> bool operator==(const image<V1>& im1,const image<V2>& im2) { if (&im1==&im2) return true; if (const_view(im1).dimensions()!=const_view(im2).dimensions()) return false; return std::equal(const_view(im1).begin(),const_view(im1).end(),const_view(im2).begin()); // TODO: change this to equal_pixels (for performance) } template <typename V1,typename V2> bool operator!=(const image<V1>& im1,const image<V2>& im2) {return !(im1==im2);} template <typename V2,typename ALLOC2> inline void swap(image<V2,ALLOC2>& im1,image<V2,ALLOC2>& im2) { swap(im1._view, im2._view); std::swap(im1.allocator(), im2.allocator()); } template <typename C> class variant; namespace detail { template <typename VC> // Models View Concept Space struct any_image_get_view { typedef variant<VC> result_type; template <typename V> result_type operator()( image<V>& img) const { return result_type(view(img)); } }; template <typename VC> // Models ConstView Concept Space struct any_image_get_const_view { typedef variant<VC> result_type; template <typename V> result_type operator()(const image<V>& img) const { return result_type(const_view(img)); } }; struct any_image_view_get_num_channels { typedef int result_type; template <typename VIEW> result_type operator()(const VIEW& v) const { return VIEW::color_space_type::num_channels; } }; struct any_image_view_get_dimensions { typedef point2<ptrdiff_t> result_type; template <typename VIEW> result_type operator()(const VIEW& v) const { return v.dimensions(); } }; } ///@{ /// \name view, const_view /// \brief Get an image view from an image /// \ingroup Image /// \brief Returns the non-constant-pixel view of an image template <typename V2, typename ALLOC2> inline const V2& view(image<V2,ALLOC2>& img) { return img._view; } /// \brief Returns the constant-pixel view of an image template <typename V2, typename ALLOC2> inline const typename V2::const_type& const_view(const image<V2,ALLOC2>& img) { return (typename V2::const_type&)img._view; } /// \brief Returns the non-constant-pixel view of any image. The returned view is any view. See variant.h for more template <typename IC> // Models Image Concept Space inline variant<typename IC::view_concept_space> view(variant<IC>& anyImage) { return anyImage.apply_visitor(detail::any_image_get_view<typename IC::view_concept_space>()); } /// \brief Returns the constant-pixel view of any image. The returned view is any view. See variant.h for more template <typename IC> // Models Image Concept Space inline variant<typename IC::const_view_concept_space> const_view(const variant<IC>& anyImage) { return anyImage.apply_visitor(detail::any_image_get_const_view<typename IC::const_view_concept_space>()); } ///@} ///@{ /// \name get_num_channels /// \brief Returns the number of channels of an image view /// \ingroup ImageView template <typename LOC> int get_num_channels(const image_view<LOC>& view) { return image_view<LOC>::color_space_type::num_channels; } template <typename C_S> int get_num_channels(const variant<C_S>& img_view) { return img_view.apply_visitor(detail::any_image_view_get_num_channels()); } ///@} ///@{ /// \name get_width, get_height, get_dimensions /// \brief Returns the dimensions of an image view /// \ingroup ImageView /// \brief Returns the width of a templated image view template <typename LOC> int get_width(const image_view<LOC>& view) { return view.width(); } /// \brief Returns the width of any image view template <typename C_S> int get_width(const variant<C_S>& img_view) { return img_view.apply_visitor(detail::any_image_view_get_dimensions()).x; } /// \brief Returns the height of a templated image view template <typename LOC> int get_height(const image_view<LOC>& view) { return view.width(); } /// \brief Returns the height of any image view template <typename C_S> int get_height(const variant<C_S>& img_view) { return img_view.apply_visitor(detail::any_image_view_get_dimensions()).y; } /// \brief Returns the dimensions of a templated image view template <typename LOC> point2<int> get_dimensions(const image_view<LOC>& view) { return view.dimensions(); } /// \brief Returns the dimensions of any image view template <typename C_S> point2<int> get_dimensions(const variant<C_S>& img_view) { return img_view.apply_visitor(detail::any_image_view_get_dimensions()); } ///@} ///@{ /// \name resize_clobber_image /// \brief Resizes a given image and invalidates its pixel values. If out of memory exception is thrown the image remains unchanged /// \ingroup Image template <typename IMG> void resize_clobber_image(IMG& img, const typename IMG::point_type& new_size) { gil_function_requires<ImageConcept<IMG> >(); IMG tmp(new_size); swap(tmp,img); } template <typename IMG> void resize_clobber_image(IMG& img, const typename IMG::x_coord_type& width, const typename IMG::y_coord_type& height) { resize_clobber_image(img, typename IMG::point_type(width,height)); } ///@} #ifdef _MSC_VER #pragma warning(pop) #endif ADOBE_GIL_NAMESPACE_END #endif --- NEW FILE: cmyk.hpp --- /* Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ /*************************************************************************************************/ #ifndef GIL_CMYK_H #define GIL_CMYK_H //////////////////////////////////////////////////////////////////////////////////////// /// \file /// \brief Support for CMYK color space and variants /// \author Lubomir Bourdev and Hailin Jin \n /// Adobe Systems Incorporated //////////////////////////////////////////////////////////////////////////////////////// #include "gil_config.hpp" #include <boost/type_traits.hpp> ADOBE_GIL_NAMESPACE_BEGIN //forward declarations for pixel and color_base template <typename T, typename C> struct pixel; namespace detail { template <typename T, typename C> struct color_base; } template <typename T, typename C> struct planar_ptr; template <typename T, typename C> struct planar_ptr_base; /// @defgroup CMYK CMYK Color Space /// @ingroup ColorSpaces /// \brief Constructs and utilities specific to the CMYK color space /// \brief CMYK color space identifier /// \ingroup CMYK struct cmyk_tag { typedef cmyk_tag base; BOOST_STATIC_CONSTANT(int, num_channels=4); }; namespace detail { /// \ingroup ColorBase /// \ingroup CMYK /// \brief cyan, magenta, yellow and black channel values/references/pointers /// /// Represents a CMYK unit of channel values (when used to construct a pixel), channel references (when used in a planar CMYK reference) /// or channel pointers (when used in a CMYK planar pointer) defined in this specific ordering in memory. Also provides channel accessors /// v0(), v1(), v2(), v3() agnostic of color space, which allow uniform operations on channels of different color spaces. The accessors also have /// consistent mapping between color bases representing order variations of the same color space. For example, v0() returns the red /// channel value/reference/pointer in both an rgb color base and in a bgr color base. template <typename T> struct color_base<T,cmyk_tag> { typedef cmyk_tag color_space_type; typedef T channel_type; typedef typename boost::add_const<channel_type>::type channel_const_type; typedef typename boost::add_reference<channel_type>::type channel_reference; typedef typename boost::add_reference<channel_const_type>::type channel_const_reference; T c,m,y,k; color_base() {} color_base(channel_type v0, channel_type v1, channel_type v2, channel_type v3) : c(v0), m(v1), y(v2), k(v3) {} template <typename T1, typename C1> color_base(const color_base<T1,C1>& cb) : c(cb.c), m(cb.m), y(cb.y), k(cb.k) {} template <typename T1, typename C1> color_base( color_base<T1,C1>& cb) : c(cb.c), m(cb.m), y(cb.y), k(cb.k) {} }; } ADOBE_GIL_NAMESPACE_END #include "pixel_iterator.hpp" // these need to be defined after including pixel... ADOBE_GIL_NAMESPACE_BEGIN //////////////////////////////////////////////////////////////////////////////////////// /// PLANAR CMYK //////////////////////////////////////////////////////////////////////////////////////// /// \brief Represents a pointer to a planar CMYK pixel. /// \ingroup PlanarPtr /// \ingroup CMYK /// /// A pointer can be constructed from and assigned to the address of a value, the address of a reference or another pointer /// It can also be dereferenced returning a reference template <typename T> struct planar_ptr<T,cmyk_tag> : public planar_ptr_base<T,cmyk_tag> { typedef planar_ptr_base<T,cmyk_tag> parent_type; typedef typename parent_type::reference reference; typedef typename parent_type::color_space_type color_space_type; planar_ptr() : parent_type(0,0,0,0) {} planar_ptr(T* ic, T* im, T* iy, T* ik) : parent_type(ic,im,iy,ik) {} // from raw data planar_ptr(unsigned char* data, ptrdiff_t step=1) : parent_type((T*)data, (T*)(data+step), (T*)(data+step+step), (T*)(data+step*3)) {} planar_ptr(const planar_ptr& ptr) : parent_type(ptr) {} planar_ptr& operator=(const planar_ptr& ptr) { this->p=ptr.p; return *this; } /// Copy constructor and operator= from pointers to compatible planar pixels or planar pixel references. /// That allow constructs like pointer = &value or pointer = &reference /// Since we should not override operator& that's the best we can do. template <typename T1, typename C1> planar_ptr(pixel<T1,C1>* pix) : parent_type(&pix->template v<0>(),&pix->template v<1>(), &pix->template v<2>(), &pix->template v<3>()) { STATIC_ASSERT_COMPATIBLE(T1,C1,T,color_space_type); } template <typename T1, typename C1> planar_ptr& operator=(pixel<T1,C1>* pix) { STATIC_ASSERT_COMPATIBLE(T1,C1,T,color_space_type); this->p.template v<0>()=&pix->template v<0>(); this->p.template v<1>()=&pix->template v<1>(); this->p.template v<2>()=&pix->template v<2>(); this->p.template v<3>()=&pix->template v<3>(); return *this; } reference dereference() const { return reference(*(this->p.c),*(this->p.m),*(this->p.y),*(this->p.k)); } }; /// \ingroup byte_advanced_ref /// Advancing a CMYK pixel by a given number of bytes template <typename T> inline pixel<T&,cmyk_tag> byte_advanced_ref(const planar_ptr<T,cmyk_tag>& p, ptrdiff_t byteDiff) { return pixel<T&,cmyk_tag>(*byte_advanced(p.p.c, byteDiff), *byte_advanced(p.p.m, byteDiff), *byte_advanced(p.p.y, byteDiff), *byte_advanced(p.p.k, byteDiff)); } namespace detail { template <typename CS,int N> struct logical_channel_accessor; /// \ingroup ChannelAccessor template <> struct logical_channel_accessor<cmyk_tag,0> { template <typename T> typename boost::add_reference<T>::type operator()(pixel<T,cmyk_tag>& p) const {return p.c;} template <typename T> typename boost::add_reference<typename boost::add_const<T>::type>::type operator()(const pixel<T,cmyk_tag>& p) const {return p.c;} }; /// \ingroup ChannelAccessor template <> struct logical_channel_accessor<cmyk_tag,1> { template <typename T> typename boost::add_reference<T>::type operator()(pixel<T,cmyk_tag>& p) const {return p.m;} template <typename T> typename boost::add_reference<typename boost::add_const<T>::type>::type operator()(const pixel<T,cmyk_tag>& p) const {return p.m;} }; /// \ingroup ChannelAccessor template <> struct logical_channel_accessor<cmyk_tag,2> { template <typename T> typename boost::add_reference<T>::type operator()(pixel<T,cmyk_tag>& p) const {return p.y;} template <typename T> typename boost::add_reference<typename boost::add_const<T>::type>::type operator()(const pixel<T,cmyk_tag>& p) const {return p.y;} }; /// \ingroup ChannelAccessor template <> struct logical_channel_accessor<cmyk_tag,3> { template <typename T> typename boost::add_reference<T>::type operator()(pixel<T,cmyk_tag>& p) const {return p.k;} template <typename T> typename boost::add_reference<typename boost::add_const<T>::type>::type operator()(const pixel<T,cmyk_tag>& p) const {return p.k;} }; } ADOBE_GIL_NAMESPACE_END #endif --- NEW FILE: pixel.hpp --- /* Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ /*************************************************************************************************/ #ifndef GIL_PIXEL_H #define GIL_PIXEL_H //////////////////////////////////////////////////////////////////////////////////////// /// \file /// \brief generic pixel definitions and utilities /// \author Lubomir Bourdev and Hailin Jin \n /// Adobe Systems Incorporated /// Last updated on 11-06-2005 /// //////////////////////////////////////////////////////////////////////////////////////// #include "gil_config.hpp" #include "gil_concept.hpp" #include "channel.hpp" #include <boost/static_assert.hpp> #include <boost/utility/enable_if.hpp> #include <functional> #include "metafunctions.hpp" #include "utilities.hpp" ADOBE_GIL_NAMESPACE_BEGIN namespace detail { /// \addtogroup ColorBase /// \brief Represents a bundle of channel values/references/pointers for a specific color space. /// /// The class is used in three different cases: /// - As a base for pixel values, in which case it instantiates into a set of channel values whose relative ordering is specified by C /// - As a base for the proxy class representing a reference to a planar pixel, in which case it instantiates into a set of channel references /// - In the construction of planar_ptr, the proxy class representing a pointer to a planar pixel, in which case in instantiates into a set of channel pointers /// /// Color bases also provide color-space independent accessors to the channel values/references/pointers, which allows us to perform color-space-independent /// channel operations (see pixel_base for more). /// /// color_base specializations are provided for each color space. See concrete specializations for more. template <typename T, typename C> struct color_base {}; /// \ingroup ColorConvert /// \brief Color Convertion function object. To be specialized for every src/dst color space template <typename T1, typename C1, typename T2, typename C2> struct _color_converter { template <typename P1, typename P2> void operator()(const P1& src, P2& dst); }; /// \addtogroup ChannelAccessor /// /// Returns the N-th logical channel of a pixel. Logical channel indices are the same across related color spaces. For example, the red channel has index 0 in both rgb and bgr /// Specialized for each index and each color space. Instead of this class, it would be easier to provide in each color base specialization a /// member function templated over the channel index. Unfortunately many compilers don't support fully specialized member functions inside partially specialized classes. template <typename CS,int N> struct logical_channel_accessor {}; /// \brief Returns the N-th channel of a pixel as laid down in memory /// \ingroup ChannelAccessor template <typename CS> struct physical_channel_accessor { // pixel has the structure of an array of T. Getting a reference to the i-th value template <typename T> T& operator()(pixel<T,CS>& p,size_t i) const { return ((T*)(&p))[i]; } template <typename T> const T& operator()(const pixel<T,CS>& p,size_t i) const {return ((const T*)(&p))[i]; } // pixel is an array of _references_ to T. Getting the i-th reference template <typename T> T& operator()(pixel<T&,CS>& p,size_t i) const { return *(((T**)((T*)&p))[i]); } template <typename T> const T& operator()(pixel<const T&,CS>& p,size_t i) const { return *(((const T**)((const T*)&p))[i]); } }; /// \brief compile-time recursion for per-channel operations of pixels /// \ingroup Pixel template <int N> struct recur { template <typename P,typename F> static void multiplies_eq(P& p, F x) { recur<N-1>::multiplies_eq(p,x); p.template v<N>()*=x; } template <typename P,typename F> static void divides_eq(P& p, F x) { recur<N-1>::divides_eq(p,x); p.template v<N>()/=x; } template <typename P1,typename P2> static void set_val(P1& p1, const P2& p2) { recur<N-1>::set_val(p1,p2); p1.template v<N>()=p2.template v<N>(); } template <typename P1,typename P2> static void plus_eq(P1& p1, const P2& p2) { recur<N-1>::plus_eq(p1,p2); p1.template v<N>()+=p2.template v<N>(); } template <typename P1,typename P2> static void minus_eq(P1& p1, const P2& p2) { recur<N-1>::minus_eq(p1,p2); p1.template v<N>()-=p2.template v<N>(); } template <typename P,typename T2> static void set_channels(P& p, T2 v) { recur<N-1>::set_channels(p,v); p.template v<N>()=v; } template <typename P1,typename P2> static bool equal_to(const P1& p1, const P2& p2) { return recur<N-1>::equal_to(p1,p2) && p1.template v<N>()==p2.template v<N>(); } template <typename OP,typename P1> static void per_channel_op(const P1& p1, OP& op) { recur<N-1>::per_channel_op(p1,op); op(p1.template v<N>()); } template <typename OP, typename P1,typename P2> static void per_channel_op(const P1& p1, const P2& p2, OP& op) { recur<N-1>::per_channel_op(p1,p2,op); op(p1.template v<N>(), p2.template v<N>()); } template <typename OP, typename P1,typename P2, typename P3> static void per_channel_op(const P1& p1, const P2& p2, const P3& p3, OP& op) { recur<N-1>::per_channel_op(p1,p2,p3,op); op(p1.template v<N>(), p2.template v<N>(), p3.template v<N>()); } template <typename OP,typename P> static void per_channel_set_op(P& dst, OP& op) { recur<N-1>::per_channel_set_op(dst,op); dst.template v<N>()=op(); } template <typename OP,typename P, typename P1> static void per_channel_set_op(P& dst, const P1& src, OP& op) { recur<N-1>::per_channel_set_op(dst,src,op); dst.template v<N>()=op(src.template v<N>()); } template <typename OP,typename P,typename P1, typename P2> static void per_channel_set_op(P& dst, const P1& src1, const P2& src2, OP& op) { recur<N-1>::per_channel_set_op(dst,src1,src2,op); dst.template v<N>()=op(src1.template v<N>(), src2.template v<N>()); } //#ifdef PROVIDE_CONST_VERSIONS template <typename OP,typename P1> static void per_channel_op(const P1& p1, const OP& op) { recur<N-1>::per_channel_op(p1,op); op(p1.template v<N>()); } template <typename OP, typename P1,typename P2> static void per_channel_op(const P1& p1, const P2& p2, const OP& op) { recur<N-1>::per_channel_op(p1,p2,op); op(p1.template v<N>(), p2.template v<N>()); } template <typename OP, typename P1, typename P2, typename P3> static void per_channel_op(const P1& p1, const P2& p2, const P3& p3, const OP& op) { recur<N-1>::per_channel_op(p1,p2,p3,op); op(p1.template v<N>(), p2.template v<N>(), p3.template v<N>()); } template <typename OP,typename P> static void per_channel_set_op(P& dst, const OP& op) { recur<N-1>::per_channel_set_op(dst,op); dst.template v<N>()=op(); } template <typename OP,typename P,typename P1> static void per_channel_set_op(P& dst, const P1& src, const OP& op) { recur<N-1>::per_channel_set_op(dst,src,op); dst.template v<N>()=op(src.template v<N>()); } template <typename OP,typename P,typename P1,typename P2> static void per_channel_set_op(P& dst, const P1& src1, const P2& src2, const OP& op) { recur<N-1>::per_channel_set_op(dst,src1,src2,op); dst.template v<N>()=op(src1.template v<N>(), src2.template v<N>()); } //#endif }; /// \brief termination condition of the compile-time recursion for channel operations on a pixel /// \ingroup Pixel template<> struct recur<-1> { template <typename P, typename F> static void multiplies_eq(P& p, F x) {} template <typename P, typename F> static void divides_eq(P& p, F x) {} template <typename P1,typename P2> static void set_val(P1& p1, const P2& p2) {} template <typename P1,typename P2> static void plus_eq(P1& p1, const P2& p2) {} template <typename P1,typename P2> static void minus_eq(P1& p1, const P2& p2) {} template <typename P, typename T2> static void set_channels(P& p, T2 v) {} template <typename P1,typename P2> static bool equal_to(const P1& p1, const P2& p2) { return true; } template <typename OP,typename P1> static void per_channel_op(const P1&,OP&){} template <typename OP,typename P1,typename P2> static void per_channel_op(const P1&,const P2&,OP&){} template <typename OP,typename P1,typename P2,typename P3> static void per_channel_op(const P1&,const P2&,const P3&,OP&){} template <typename OP,typename P> static void per_channel_set_op(P&,OP&){} template <typename OP,typename P, typename P1> static void per_channel_set_op(P&,const P1&,OP&){} template <typename OP,typename P, typename P1, typename P2> static void per_channel_set_op(P&,const P1&,const P2&,OP&){} //#ifdef PROVIDE_CONST_VERSIONS template <typename OP,typename P1> static void per_channel_op(const P1&,const OP&){} template <typename OP,typename P1,typename P2> static void per_channel_op(const P1&,const P2&,const OP&){} template <typename OP,typename P1,typename P2,typename P3> static void per_channel_op(const P1&,const P2&,const P3&,const OP&){} template <typename OP,typename P> static void per_channel_set_op(P&,const OP&){} template <typename OP,typename P, typename P1> static void per_channel_set_op(P&,const P1&,const OP&){} template <typename OP,typename P, typename P1, typename P2> static void per_channel_set_op(P&,const P1&,const P2&,const OP&){} //#endif }; /// \brief compile-time recursion for min/max channel /// \ingroup Pixel template <int N> struct min_max_recur { template <typename P> static typename P::channel_value_type max_(const P& p) { return std::max(min_max_recur<N-1>::max_(p),p.template v<N>()); } template <typename P> static typename P::channel_value_type min_(const P& p) { return std::min(min_max_recur<N-1>::min_(p),p.template v<N>()); } }; /// \brief termination condition of the compile-time recursion for min/max channel /// \ingroup Pixel template <> struct min_max_recur<0> { template <typename P> static typename P::channel_value_type max_(const P& p) { return p.template v<0>(); } template <typename P> static typename P::channel_value_type min_(const P& p) { return p.template v<0>(); } }; } // namespace detail //@{ /// \name Pixel global functions /// /// Functions defined for any class that models PixelConcept /// \ingroup Pixel template <typename P> typename P::channel_value_type max_channel(const P& p) { return detail::min_max_recur<P::max_channel_index>::max_(p); } template <typename P> typename P::channel_value_type min_channel(const P& p) { return detail::min_max_recur<P::max_channel_index>::min_(p); } template <typename P> void set_channels(P& p, const typename P::channel_type& v) { detail::recur<P::max_channel_index>::set_channels(p,v); } /// \brief returns the alpha channel value for a pixel. Default returns 100% opaque. Overload for color spaces containing alpha template <typename P> typename P::channel_value_type alpha(const P& p) { return channel_traits<typename P::channel_type>::max(); } // no alpha = 100% alpha template <typename OP,typename P1> void per_channel_set_op(OP& op, P1& p1) { detail::recur<P1::max_channel_index>::per_channel_set_op(p1,op); } template <typename OP,typename P1,typename P2> void per_channel_set_op(OP& op, P1& p1,const P2& p2) { detail::recur<P1::max_channel_index>::per_channel_set_op(p1,p2,op); } template <typename OP,typename P1,typename P2,typename P3> void per_channel_set_op(OP& op, P1& p1,const P2& p2,const P3& p3) { detail::recur<P1::max_channel_index>::per_channel_set_op(p1,p2,p3,op); } template <typename OP,typename P1> void per_channel_op(OP& op,const P1& p1) { detail::recur<P1::max_channel_index>::per_channel_op(p1,op); } template <typename OP,typename P1,typename P2> void per_channel_op(OP& op,const P1& p1,const P2& p2) { detail::recur<P1::max_channel_index>::per_channel_op(p1,p2,op); } template <typename OP,typename P1,typename P2,typename P3> void per_channel_op(OP& op,const P1& p1,const P2& p2,const P3& p3){ detail::recur<P1::max_channel_index>::per_channel_op(p1,p2,p3,op); } //#ifdef PROVIDE_CONST_VERSIONS template <typename OP,typename P1> void per_channel_set_op(const OP& op, P1& p1) { detail::recur<P1::max_channel_index>::per_channel_set_op(p1,op); } template <typename OP,typename P1,typename P2> void per_channel_set_op(const OP& op, P1& p1,const P2& p2) { detail::recur<P1::max_channel_index>::per_channel_set_op(p1,p2,op); } template <typename OP,typename P1,typename P2,typename P3> void per_channel_set_op(const OP& op, P1& p1,const P2& p2,const P3& p3) { detail::recur<P1::max_channel_index>::per_channel_set_op(p1,p2,p3,op); } template <typename OP,typename P1> void per_channel_op(const OP& op,const P1& p1) { detail::recur<P1::max_channel_index>::per_channel_op(p1,op); } template <typename OP,typename P1,typename P2> void per_channel_op(const OP& op,const P1& p1,const P2& p2) { detail::recur<P1::max_channel_index>::per_channel_op(p1,p2,op); } template <typename OP,typename P1,typename P2,typename P3> void per_channel_op(const OP& op,const P1& p1,const P2& p2,const P3& p3){ detail::recur<P1::max_channel_index>::per_channel_op(p1,p2,p3,op); } //#endif //@} /// \brief Does a static assert that the two pixel values, planar references or planar pointers are compatible. /// /// In particular, their channel types are the same (ignoring reference, constness, and pointerness), and their base color spaces are the same /// (ignoring reference tags and bgr vs rgb ordering) #define STATIC_ASSERT_COMPATIBLE(T1,C1,T2,C2) BOOST_STATIC_ASSERT( \ (are_color_spaces_compatible<C1,C2>::value && \ are_channels_compatible<typename boost::remove_pointer<T1>::type,typename boost::remove_pointer<T1>::type>::value )) /// \addtogroup Pixel /// /// Models: PixelConcept /// /// Pixels are first class objects; dereferencing, assignment, copy construction, etc. are /// defined and behave as expected. /// /// \ingroup Pixel /// \brief GIL's model of PixelConcept /// /// Pixel values are represented as specializations of the pixel struct. /// Multi-channel pixels may have different channel ordering (RGB vs BGR for example). /// Each channel ordering is represented as a separate specialization of pixel /// /// Interleaved pixels have channels that are consecutive in memory. Therefore their pointers and references /// are built-in pointers and references to the value structs. Planar pixels, on the other hand, represent /// non-consecutive channels and thus pointers and references to planar pixels are represented by special classes. /// /// Pointers, references, values, color spaces and channel types of pixels are defined in iterator_traits /// of pixel iterators. /// Its base class, color_base, provides color-space specific channels. The pixel class /// provides per-channel operations that depend on the number of components but not on /// the specifics of the color space. For example, the same code is used to compare two /// BGR pixels, two LAB pixels and two planar pointers to RGB pixels. /// Per-channel operations are implemented as compile-time recursions. /// The binary per-channel operations pair channels semantically and not based on their order /// in memory. For example a binary operation between RGB and BGR color bases will properly pair /// the first channel of RGB to the third channel of BGR. This is done by using the /// semantic channel accessors v<N>() /// /// Note that pixel<T&,C> represents a bundle of references to channels. It is used as the /// reference proxy class for planar pixels. Similarly, pixel<T*,C>, a bundle of pointers to channels, /// is used in the implementation of planar_ptr<T,C>, the pointer proxy class for planar pixels. template <typename T, typename C> struct pixel : public detail::color_base<T,C> { private: typedef detail::color_base<T,C> parent_type; public: typedef C color_space_type; typedef T channel_type; typedef typename boost::add_const<channel_type>::type channel_const_type; typedef typename boost::add_reference<channel_type>::type channel_reference; typedef typename boost::add_reference<channel_const_type>::type channel_const_reference; typedef typename boost::remove_reference<channel_type>::type channel_value_type; typedef pixel<channel_value_type,color_space_type> pixel_value_type; // type to return when returning by value template <int N> struct nth_channel_type { typedef channel_type type; }; static const int max_channel_index=color_space_type::num_channels-1; pixel(){} explicit pixel(channel_type v) { set_channels(*this,v); } pixel(channel_type v0, channel_type v1) : parent_type(v0,v1) {} pixel(channel_type v0, channel_type v1, channel_type v2) : parent_type(v0,v1,v2) {} pixel(channel_type v0, channel_type v1, channel_type v2, channel_type v3) : parent_type(v0,v1,v2,v3) {} pixel(channel_type v0, channel_type v1, channel_type v2, channel_type v3, channel_type v4) : parent_type(v0,v1,v2,v3,v4) {} pixel(const pixel& p) : parent_type(p) {} template <typename T1, typename C1> pixel(const pixel<T1,C1>& p) : parent_type(p) {STATIC_ASSERT_COMPATIBLE(T,C,T1,C1);} template <typename T1, typename C1> pixel( pixel<T1,C1>& p) : parent_type(p) {STATIC_ASSERT_COMPATIBLE(T,C,T1,C1);} // copy constructor used when T is a reference pixel& operator=(const pixel& p) { detail::recur<max_channel_index>::set_val(*this,p); return *this; } template <typename T1, typename C1> pixel& operator=(const pixel<T1,C1>& p) { STATIC_ASSERT_COMPATIBLE(T,C,T1,C1); detail::recur<max_channel_index>::set_val(*this,p); return *this; } channel_reference operator[](size_t i) { return detail::physical_channel_accessor<C>()(*this,i); } channel_const_reference operator[](size_t i) const { return detail::physical_channel_accessor<C>()(*this,i); } template <typename T1, typename C1> bool operator==(const pixel<T1,C1>& p) const { STATIC_ASSERT_COMPATIBLE(T,C,T1,C1); return detail::recur<max_channel_index>::equal_to(*this,p); } template <typename T1, typename C1> bool operator!=(const pixel<T1,C1>& p) const { return !(*this==p); } template <int N> channel_const_reference v() const { return detail::logical_channel_accessor<C,N>()(*this); } template <int N> channel_reference v() { return detail::logical_channel_accessor<C,N>()(*this); } }; //@{ /// \name Pixel operator overloads /// \brief operators +=, -=, *=, /=, +, -, /, * for gil::pixel /// /// Unfortunately they can be defined only for gil::pixel. Generic implementations would have to take the pixel as a template parameter and /// would be indistinguishable from the above operators applied to any other object. /// User-defined pixels must provide separate implementations of these operators. /// \ingroup Pixel template <typename T1, typename CS1,typename T2,typename CS2> inline pixel<T1,CS1>& operator+=(pixel<T1,CS1>& p1,const pixel<T2,CS2>& p2) { STATIC_ASSERT_COMPATIBLE(T1,CS1,T2,CS2); detail::recur<CS1::num_channels-1>::plus_eq(p1,p2); return p1; } template <typename T1, typename CS1,typename T2,typename CS2> inline pixel<T1,CS1>& operator-=(pixel<T1,CS1>& p1,const pixel<T2,CS2>& p2) { STATIC_ASSERT_COMPATIBLE(T1,CS1,T2,CS2); detail::recur<CS1::num_channels-1>::minus_eq(p1,p2); return p1; } template <typename T, typename CS,typename S> inline pixel<T,CS>& operator*=(pixel<T,CS>& p,const S& x) {detail::recur<CS::num_channels-1>::multiplies_eq(p,x); return p; } template <typename T, typename CS,typename S> inline pixel<T,CS>& operator/=(pixel<T,CS>& p,const S& x) {detail::recur<CS::num_channels-1>::divides_eq(p,x); return p; } template <typename T1, typename CS1,typename T2,typename CS2> inline typename pixel<T1,CS1>::pixel_value_type operator+(const pixel<T1,CS1>& p1,const pixel<T2,CS2>& p2) { typename pixel<T1,CS1>::pixel_value_type tmp(p1); tmp+=p2; return tmp; } template <typename T1, typename CS1,typename T2,typename CS2> inline typename pixel<T1,CS1>::pixel_value_type operator-(const pixel<T1,CS1>& p1,const pixel<T2,CS2>& p2) { typename pixel<T1,CS1>::pixel_value_type tmp(p1); tmp-=p2; return tmp; } template <typename T, typename CS, typename S> inline typename pixel<T,CS>::pixel_value_type operator/(const pixel<T,CS>& p, const S& x) { typename pixel<T,CS>::pixel_value_type tmp(p); tmp/=x; return tmp; } template <typename T, typename CS, typename S> inline typename pixel<T,CS>::pixel_value_type operator*(const pixel<T,CS>& p, const S& x) { typename pixel<T,CS>::pixel_value_type tmp(p); tmp*=x; return tmp; } //@} ADOBE_GIL_NAMESPACE_END #endif --- NEW FILE: algorithm.hpp --- /* Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ /*************************************************************************************************/ #ifndef GIL_ALGORITHMS_H #define GIL_ALGORITHMS_H #include "gil_config.hpp" #include "gil_concept.hpp" #include <cassert> #include <algorithm> #include "image.hpp" #include "variant.hpp" //////////////////////////////////////////////////////////////////////////////////////// /// \file /// \brief Some basic STL-style algorithms when applied to image views /// \author Lubomir Bourdev and Hailin Jin \n /// Adobe Systems Incorporated /// //////////////////////////////////////////////////////////////////////////////////////// namespace std { //@{ /// \name STL optimizations /// \brief overloads of STL algorithms allowing more efficient implementation when used with GIL constructs /// \ingroup Algorithms /// \brief Copy when both src and dst are interleaved and of the same type can be just memmove template<typename T, typename CS> inline GIL::pixel<T,CS>* copy(GIL::pixel<T,CS>* first, GIL::pixel<T,CS>* last, GIL::pixel<T,CS>* dst) { return (GIL::pixel<T,CS>*)std::copy((unsigned char*)first,(unsigned char*)last, (unsigned char*)dst); } /// \brief Copy when both src and dst are interleaved and of the same type can be just memmove template<typename T, typename CS> inline GIL::pixel<T,CS>* copy(GIL::pixel<const T,CS>* first, GIL::pixel<const T,CS>* last, GIL::pixel<T,CS>* dst) { return (GIL::pixel<T,CS>*)std::copy((unsigned char*)first,(unsigned char*)last, (unsigned char*)dst); } } ADOBE_GIL_NAMESPACE_BEGIN namespace detail { template <typename I, typename O> struct copy_fn { I operator()(I first, I last, O dst) const { return std::copy(first,last,dst); } }; } ADOBE_GIL_NAMESPACE_END namespace std { /// \brief Copy when both src and dst are planar pointers is copy for each channel template<typename T1, typename CS1, typename T2, typename CS2> inline GIL::planar_ptr<T2,CS2> copy(GIL::planar_ptr<T1,CS1> first, GIL::planar_ptr<T1,CS1> last, GIL::planar_ptr<T2,CS2> dst) { GIL::gil_function_requires<GIL::ChannelsCompatibleConcept<T1,T2> >(); GIL::gil_function_requires<GIL::ColorSpacesCompatibleConcept<CS1,CS2> >(); per_channel_op(GIL::detail::copy_fn<T1*,T2*>(),first.p,last.p,dst.p); return dst+(last-first); } } ADOBE_GIL_NAMESPACE_BEGIN namespace detail { /// Does a copy-n. If the inputs contain image iterators, performs a copy at each row using the row iterators /// \ingroup Algorithms template <typename I, typename O> struct copier_n { void operator()(I src, ptrdiff_t n, O dst) const { std::copy(src,src+n, dst); } }; /// Source range is delimited by image iterators /// \ingroup Algorithms template <typename IL, typename O> // IL Models ConstXYLocatorConcept, O Models PixelIteratorConcept struct copier_n<GIL::pixel_image_iterator<IL>,O> { void operator()(GIL::pixel_image_iterator<IL> src, ptrdiff_t n, O dst) const { GIL::gil_function_requires<GIL::XYLocatorConcept<IL> >(); GIL::gil_function_requires<GIL::MutablePixelIteratorConcept<O> >(); while (n>0) { ptrdiff_t numToCopy=std::min<const ptrdiff_t>(n, src.width()-src.x()); copy_n(src.x_it(), numToCopy, dst); dst+=numToCopy; src+=numToCopy; n-=numToCopy; } } }; /// Destination range is delimited by image iterators /// \ingroup Algorithms template <typename I, typename OL> // I Models ConstPixelIteratorConcept, OL Models XYLocatorConcept struct copier_n<I,GIL::pixel_image_iterator<OL> > { void operator()(I src, ptrdiff_t n, GIL::pixel_image_iterator<OL> dst) const { GIL::gil_function_requires<GIL::PixelIteratorConcept<I> >(); GIL::gil_function_requires<GIL::MutableXYLocatorConcept<OL> >(); while (n>0) { ptrdiff_t numToCopy=std::min<const ptrdiff_t>(n,dst.width()-dst.x()); copy_n(src, numToCopy, dst.x_it()); dst+=numToCopy; src+=numToCopy; n-=numToCopy; } } }; /// Both source and destination ranges are delimited by image iterators /// \ingroup Algorithms template <typename IL, typename OL> struct copier_n<GIL::pixel_image_iterator<IL>,GIL::pixel_image_iterator<OL> > { void operator()(GIL::pixel_image_iterator<IL> src, ptrdiff_t n, GIL::pixel_image_iterator<OL> dst) const { GIL::gil_function_requires<GIL::XYLocatorConcept<IL> >(); GIL::gil_function_requires<GIL::MutableXYLocatorConcept<OL> >(); if (src.x()!=dst.x() || src.width()!=dst.width()) { while(n-->0) { *dst++=*src++; } } while (n>0) { ptrdiff_t numToCopy=std::min<const ptrdiff_t>(n,dst.width()-dst.x()); copy_n(src.x_it(), numToCopy, dst.x_it()); dst+=numToCopy; src+=numToCopy; n-=numToCopy; } } }; } ADOBE_GIL_NAMESPACE_END namespace std { /// \brief std::copy(I1,I1,I2) with I1 and I2 being a pixel_image_iterator /// /// Invoked when one calls std::copy(I1,I1,I2) with I1 and I2 being a pixel_image_iterator (which is /// a 1D iterator over the pixels in an image). Attempts to demote the source and destination /// iterators to simpler/faster types if the corresponding range is contiguous. /// For contiguous images (i.e. images that have /// no alignment gap at the end of each row) it is more efficient to use the underlying /// pixel iterator that does not check for the end of rows. If the underlying pixel iterator /// happens to be a fundamental planar/interleaved pointer, the call may further resolve /// to memmove. Otherwise it resolves to copying each row using the underlying pixel iterator template <typename IL, typename OL> inline GIL::pixel_image_iterator<OL> copy(GIL::pixel_image_iterator<IL> first, GIL::pixel_image_iterator<IL> last, GIL::pixel_image_iterator<OL> dst) { GIL::gil_function_requires<GIL::XYLocatorConcept<IL> >(); GIL::gil_function_requires<GIL::MutableXYLocatorConcept<OL> >(); ptrdiff_t n=last-first; if (first.is_contiguous()) { if (dst.is_contiguous()) GIL::detail::copier_n<typename IL::x_iterator,typename OL::x_iterator>()(first.x_it(),n, dst.x_it()); else GIL::detail::copier_n<typename IL::x_iterator,GIL::pixel_image_iterator<OL> >()(first.x_it(),n, dst); } else { if (dst.is_contiguous()) GIL::detail::copier_n<GIL::pixel_image_iterator<IL>,typename OL::x_iterator>()(first,n, dst.x_it()); else GIL::detail::copier_n<GIL::pixel_image_iterator<IL>,GIL::pixel_image_iterator<OL> >()(first,n,dst); } return dst+n; } /// \brief std::fill(I,I,V) with I being a pixel_image_iterator /// /// Invoked when one calls std::fill(I,I,V) with I being a pixel_image_iterator (which is /// a 1D iterator over the pixels in an image). For contiguous images (i.e. images that have /// no alignment gap at the end of each row) it is more efficient to use the underlying /// pixel iterator that does not check for the end of rows. For non-contiguous images fill /// resolves to fill of each row using the underlying pixel iterator, which is still faster template <typename IL, typename V> void fill(GIL::pixel_image_iterator<IL> first, GIL::pixel_image_iterator<IL> last, const V& val) { GIL::gil_function_requires<GIL::MutableXYLocatorConcept<IL> >(); if (first.is_contiguous()) { std::fill(first.x_it(), last.x_it(), val); } else { // fill row by row ptrdiff_t n=last-first; while (n>0) { ptrdiff_t numToDo=std::min<const ptrdiff_t>(n,(ptrdiff_t)(first.width()-first.x())); fill_n(first.x_it(), numToDo, val); first+=numToDo; n-=numToDo; } } } //@} } ADOBE_GIL_NAMESPACE_BEGIN //@{ /// \name copy_pixels /// \brief std::copy for image views namespace detail { template <bool COMPATIBLE> struct copy_pixels_fn1 { template <typename V1, typename V2> static void apply(const V1& src, const V2& dst) { copy_pixels(src,dst); } }; // copy_pixels invoked on incompatible images template <> struct copy_pixels_fn1<false> { template <typename V1, typename V2> static void apply(const V1& src, const V2& dst) { throw std::bad_cast();} }; struct copy_pixels_fn { typedef void result_type; template <typename V1, typename V2> result_type operator()(const V1& src, const V2& dst) const { copy_pixels_fn1<are_pixels_compatible<typename V1::value_type, typename V2::value_type>::value>::apply(src,dst); } }; } /// \ingroup Algorithms template <typename V1, typename V2> void copy_pixels(const V1& src, const V2& dst) { assert(src.dimensions()==dst.dimensions()); std::copy(src.begin(),src.end(),dst.begin()); // std::copy will choose the optimal method (see stl_override.h) } template <typename C1, // Model image view concept space typename V2> // Model image view void copy_pixels(const variant<C1>& src, const V2& dst) { src.apply_visitor(GIL::bind2nd(GIL::detail::copy_pixels_fn(), dst)); } template <typename V1, // Model image view typename C2> // Model non-const image view concept space void copy_pixels(const V1& src, const variant<C2>& dst) { dst.apply_visitor(GIL::bind1st(GIL::detail::copy_pixels_fn(), src)); } template <typename C1, typename C2> // Model image view concept spaces void copy_pixels(const variant<C1>& src, const variant<C2>& dst) { apply_visitor(src,dst,detail::copy_pixels_fn()); } //@} namespace detail { // If the two color spaces are compatible, copy_and_convert is just copy template <bool COMPATIBLE> struct copy_and_convert_pixels_fn1 { template <typename V1, typename V2> static void apply(const V1& src, const V2& dst) { copy_pixels(src,dst); } }; // when the two color spaces are incompatible, a color conversion is performed template <> struct copy_and_convert_pixels_fn1<false> { template <typename V1, typename V2> static void apply(const V1& src, const V2& dst) { copy_pixels(color_convert_view<typename V2::value_type>(src),dst); } }; struct copy_and_convert_pixels_fn { typedef void result_type; template <typename V1, typename V2> result_type operator()(const V1& src, const V2& dst) const { assert(src.dimensions()==dst.dimensions()); copy_and_convert_pixels_fn1<are_pixels_compatible<typename V1::value_type, typename V2::value_type>::value>::apply(src,dst); } }; } //@{ /// \name copy_and_convert_pixels /// \brief copies src view into dst view, color converting if necessary /// \ingroup Algorithms template <typename V1, typename V2> void copy_and_convert_pixels(const V1& src, const V2& dst) { detail::copy_and_convert_pixels_fn()(src,dst); } template <typename C1, // Model image view concept space typename V2> // Model image view void copy_and_convert_pixels(const variant<C1>& src, const V2& dst) { src.apply_visitor(GIL::bind2nd(detail::copy_and_convert_pixels_fn(), dst)); } template <typename V1, // Model image view typename C2> // Model non-const image view concept space void copy_and_convert_pixels(const V1& src, const variant<C2>& dst) { dst.apply_visitor(GIL::bind1st(detail::copy_and_convert_pixels_fn(), src)); } template <typename C1, typename C2> // Model image view concept spaces void copy_and_convert_pixels(const variant<C1>& src, const variant<C2>& dst) { apply_visitor(src,dst,detail::copy_and_convert_pixels_fn()); } //@} //@{ /// \name fill_pixels /// \brief std::fill for image views namespace detail { template <bool COMPATIBLE> struct fill_pixels_fn1 { template <typename V, typename VAL> static void apply(const V& src, const VAL& val) { fill_pixels(src,val); } }; // copy_pixels invoked on incompatible images template <> struct fill_pixels_fn1<false> { template <typename V, typename VAL> static void apply(const V& src, const VAL& val) { throw std::bad_cast();} }; template <typename VAL> struct fill_pixels_fn { fill_pixels_fn(const VAL& val) : _val(val) {} typedef void result_type; template <typename V> result_type operator()(const V& img_view) const { fill_pixels_fn1<are_pixels_compatible<typename V::value_type, VAL>::value>::apply(img_view,_val); } VAL _val; }; } /// \ingroup Algorithms template <typename V, typename VAL> void fill_pixels(const V& img_view, const VAL& val) { if (img_view.begin().is_contiguous()) { std::fill(img_view.begin().x_it(), img_view.end().x_it(), val); } else { for (int y=0; y<img_view.height(); ++y) std::fill(img_view.row_begin(y),img_view.row_end(y),val); } } template <typename C, typename VAL> void fill_pixels(const variant<C>& img_view, const VAL& val) { img_view.apply_visitor(GIL::detail::fill_pixels_fn<VAL>(val)); } //@} //@{ /// \name for_each_pixel /// \brief std::for_each for image views /// \ingroup Algorithms /// For contiguous images (i.e. images that have no alignment gap at the end of each row) it is /// more efficient to use the underlying ... [truncated message content] |
From: Foster B. <fos...@us...> - 2006-01-09 19:37:36
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/gil/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20204/core Log Message: Directory /cvsroot/adobe-source/sandbox/adobe-source/adobe/gil/core added to the repository |
From: Foster B. <fos...@us...> - 2006-01-09 19:31:46
|
Update of /cvsroot/adobe-source/adobe-source/adobe/documentation/sources/gil In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18763/adobe/documentation/sources/gil Modified Files: main.dox Log Message: asl 1.0.12 stragglers Index: main.dox =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/documentation/sources/gil/main.dox,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** main.dox 6 Jan 2006 18:35:20 -0000 1.1 --- main.dox 9 Jan 2006 19:31:34 -0000 1.2 *************** *** 6,9 **** --- 6,60 ---- Adobe Systems Inc. + \section gil_toc GIL Table of Contents + - \ref GILConcepts + - \ref PointConcept + - \ref ChannelConcept + - \ref ColorSpaceTypeConcept + - \ref PixelConcept + - \ref IteratorConcept + - \ref IteratorAdaptorConcept + - \ref StepIteratorConcept + - \ref ImageIteratorConcept + - \ref LocatorConcept + - \ref LocatorNDConcept + - \ref Locator2DConcept + - \ref XYLocatorConcept + - \ref ImageViewConcept + - \ref ImageViewNDConcept + - \ref ImageView2DConcept + - \ref GILImageViewConcept + - \ref ImageConcept + - \ref ImageNDConcept + - \ref Image2DConcept + - \ref GILImageConcept + - \ref GILModels + - \ref Channel + - \ref ColorSpaces + - \ref CMYK + - \ref ColorConvert + - \ref GRAY + - \ref LAB + - \ref RGB + - \ref RGBA + - \ref Pixel + - \ref ChannelAccessor + - \ref ColorBase + - \ref Iterators + - \ref PlanarPtr + - \ref IteratorTraits + - \ref ByteOperations + - \ref byte_step + - \ref byte_distance + - \ref byte_advance + - \ref byte_advanced + - \ref byte_advanced_ref + - \ref ImageView + - \ref ImageViewConstructors + - \ref Image + - \ref Variant + - \ref Metafunctions + - \ref type_factory + - \ref Algorithms + \section IntroSec Introduction \par *************** *** 35,125 **** */ ! /*! ! \defgroup Pixels Channels and Pixels ! \ingroup asl_gil ! \brief The pixel concept represents a color unit in an image ! */ ! ! /*! ! \defgroup Channels Channels ! \ingroup Pixels ! \brief Channels and channel operations ! */ ! ! /*! ! \defgroup ColorSpaces Color Spaces ! \ingroup Pixels ! \brief Color spaces and color space conversion ! */ ! ! /*! ! \defgroup ColorBase Color Bases ! \ingroup Pixels ! \brief A bundle of channel values/references/pointers of a given color space ! */ ! ! /*! ! \defgroup Iterators Pixel Iterators ! \ingroup asl_gil ! \brief Iterators operating on pixels ! */ ! ! /*! ! \defgroup IteratorTraits Iterator Traits ! \ingroup Iterators ! \brief Traits for pixel iterators ! */ ! ! /*! ! \defgroup ByteOperations Byte-level operations ! \ingroup Iterators ! \brief Byte-level operations on pixel iterators ! */ ! ! /*! ! \defgroup byte_step byte_step ! \ingroup ByteOperations ! \brief returns the number of bytes from the current pixel of a pointer to the next ! */ ! ! /*! ! \defgroup byte_distance byte_distance ! \ingroup ByteOperations ! \brief Returns the distance in bytes from the first pixel iterator to the second ! */ ! ! /*! ! \defgroup byte_advance byte_advance ! \ingroup ByteOperations ! \brief Moves a pixel iterator a given distance in bytes ! */ ! ! /*! ! \defgroup byte_advanced byte_advanced ! \ingroup ByteOperations ! \brief Returns a pixel iterator a given byte distance away from a given pixel iterator ! */ ! ! /*! ! \defgroup byte_advanced_ref byte_advanced_ref ! \ingroup ByteOperations ! \brief Shortcut to advancing a pixel iterator by a given number of bytes and taking the reference in case the compiler is not smart enough ! */ ! ! /*! ! \defgroup Image Image View and Image ! \ingroup asl_gil ! \brief Image views and image-level operations ! */ ! ! /*! ! \defgroup Variant Variant ! \ingroup asl_gil ! \brief Support for concepts with run-time instantiation. Used in GIL to provide images and image views of run-time specified color space, channel depth, etc. ! */ ! /*! ! \defgroup Metafunctions Meta-functions ! \ingroup asl_gil ! \brief Meta-functions that construct types or return type properties ! */ --- 86,253 ---- */ ! /// @defgroup GILConcepts GIL Concepts ! /// \ingroup asl_gil ! /// \brief GIL concept definitions, archetypes and concept checks ! /// @defgroup PointConcept Point ! /// @ingroup GILConcepts ! /// \brief Concept for N-dimensional point and refinement for 2D ! Ê ! /// @defgroup ChannelConcept Channel ! /// @ingroup GILConcepts ! /// \brief Concept for channel and mutable channel ! Ê ! /// @defgroup ColorSpaceTypeConcept Color Space ! /// @ingroup GILConcepts ! /// \brief Concept for color space type ! Ê ! /// @defgroup PixelConcept Pixel ! /// @ingroup GILConcepts ! /// \brief Concept for pixel and mutable pixel ! Ê ! /// @defgroup IteratorConcept Iterator ! /// @ingroup GILConcepts ! /// \brief Concept for iterators over pixels (fundamental, step, adaptor and image-pixel iterators over immutable/mutable pixels) ! /// @defgroup IteratorAdaptorConcept Iterator Adaptor ! /// @ingroup IteratorConcept ! /// \brief Concept for an iterator adaptor over a base iterator ! Ê ! /// @defgroup StepIteratorConcept Step Iterator ! /// @ingroup IteratorConcept ! /// \brief Concept for an iterator that has non-fundamental step ! Ê ! /// @defgroup ImageIteratorConcept Image Iterator ! /// @ingroup IteratorConcept ! /// \brief Concept for an iterator over all pixels in an image ! Ê ! /// @defgroup LocatorConcept Locator ! /// @ingroup GILConcepts ! /// \brief Concept for locator (generalization of iterator in N-dimensional space) ! /// @defgroup LocatorNDConcept N-Dimensional Locator ! /// @ingroup LocatorConcept ! /// \brief Concept for an N-dimensional locator over immutable/mutable values ! Ê ! /// @defgroup Locator2DConcept 2-Dimensional Locator ! /// @ingroup LocatorConcept ! /// \brief Concept for a 2-dimensional locator over immutable/mutable values ! Ê ! /// @defgroup XYLocatorConcept GIL's 2-Dimensional Pixel Locator ! /// @ingroup LocatorConcept ! /// \brief Concept for GIL's 2-dimensional locator over immutable/mutable pixels ! Ê ! /// @defgroup ImageViewConcept Image View ! /// @ingroup GILConcepts ! /// \brief Concept for image view (N-dimensional range) ! /// @defgroup ImageViewNDConcept N-Dimensional Image View ! /// @ingroup ImageViewConcept ! /// \brief Concept for an N-dimensional range over immutable/mutable values ! Ê ! /// @defgroup ImageView2DConcept 2-Dimensional Image View ! /// @ingroup ImageViewConcept ! /// \brief Concept for a 2-dimensional range over immutable/mutable values ! Ê ! /// @defgroup GILImageViewConcept GIL's 2-Dimensional Pixel Image View ! /// @ingroup ImageViewConcept ! /// \brief Concept for GIL's 2-dimensional range over immutable/mutable pixels ! Ê ! /// @defgroup ImageConcept Image ! /// @ingroup GILConcepts ! /// \brief Concept for image (N-dimensional container) ! /// @defgroup ImageNDConcept N-Dimensional Image ! /// @ingroup ImageConcept ! /// \brief Concept for an N-dimensional container of immutable/mutable values ! Ê ! /// @defgroup Image2DConcept 2-Dimensional Image ! /// @ingroup ImageConcept ! /// \brief Concept for a 2-dimensional container of immutable/mutable values ! Ê ! /// @defgroup GILImageConcept GIL's 2-Dimensional Pixel Image ! /// @ingroup ImageConcept ! /// \brief Concept for GIL's 2-dimensional container of immutable/mutable pixels ! Ê ! /// @defgroup GILModels GIL Models ! /// \ingroup asl_gil ! /// \brief Standard models of GIL concepts ! Ê ! /// @defgroup Channel Channel ! /// @ingroup GILModels ! /// \brief Channel and channel operations ! Ê ! /// @defgroup ColorSpaces Color Space ! /// @ingroup GILModels ! /// \brief Color spaces and color space conversion ! Ê ! /// @defgroup Pixel Pixel ! /// @ingroup GILModels ! /// \brief Pixel and pixel-related functions ! ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ ! /// @defgroup ChannelAccessor Channel Accessor ! /// @ingroup Pixel ! /// \brief Classes allowing accessing a channel of a pixel ! Ê ! /// @defgroup ColorBase Color Bases ! /// @ingroup Pixel ! /// \brief A bundle of channel values/references/pointers of a given color space ! Ê ! /// @defgroup Iterators Pixel Iterators ! /// @ingroup GILModels ! /// \brief Iterators operating on pixels ! Ê ! /// @defgroup PlanarPtr Planar Pointers ! /// @ingroup Iterators ! /// \brief Implementations of pointers to planar pixels ! Ê ! /// @defgroup IteratorTraits Iterator Traits ! /// @ingroup Iterators ! /// \brief Traits for pixel iterators ! Ê ! /// @defgroup ByteOperations Byte-level operations ! /// @ingroup Iterators ! /// \brief Byte-level operations on pixel iterators ! Ê ! /// @defgroup byte_step byte_step ! /// @ingroup ByteOperations ! /// \brief returns the number of bytes from the current pixel of a pointer to the next ! Ê ! /// @defgroup byte_distance byte_distance ! /// @ingroup ByteOperations ! /// \brief Returns the distance in bytes from the first pixel iterator to the second ! Ê ! /// @defgroup byte_advance byte_advance ! /// @ingroup ByteOperations ! /// \brief Moves a pixel iterator a given distance in bytes ! Ê ! /// @defgroup byte_advanced byte_advanced ! /// @ingroup ByteOperations ! /// \brief Returns a pixel iterator a given byte distance away from a given pixel iterator ! Ê ! /// @defgroup byte_advanced_ref byte_advanced_ref ! /// @ingroup ByteOperations ! /// \brief Shortcut to advancing a pixel iterator by a given number of bytes and taking the reference in case the compiler is not smart enough ! Ê ! /// \defgroup ImageView Image View ! /// @ingroup GILModels ! /// \brief Image views and related operations ! Ê ! /// @defgroup ImageViewConstructors Image View Constructors ! /// @ingroup ImageView ! /// \brief Methods for constructing image views from raw data or other image views ! Ê ! /// \defgroup Image Image ! /// @ingroup GILModels ! /// \brief Images and related operations ! Ê ! /// @defgroup Variant Variant ! /// @ingroup GILModels ! /// \brief Support for concepts with run-time instantiation. Used in GIL to provide images and image views of run-time specified color space, channel depth, etc. ! Ê ! /// @defgroup Metafunctions Meta-functions ! /// @ingroup GILModels ! /// \brief Meta-functions that construct types or return type properties ! Ê ! /// @defgroup Algorithms Algorithms ! /// @ingroup GILModels ! /// \brief Some basic STL-style algorithms when applied to images (as opposed to ranges) ! Ê ! /// \brief namespace for functions not directly needed by the client ! namespace detail {} |
From: Foster B. <fos...@us...> - 2006-01-09 19:31:46
|
Update of /cvsroot/adobe-source/adobe-source/adobe/documentation/sources/structure In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18763/adobe/documentation/sources/structure Modified Files: cvs_howto.dox news.dox Log Message: asl 1.0.12 stragglers Index: cvs_howto.dox =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/documentation/sources/structure/cvs_howto.dox,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** cvs_howto.dox 2 Jun 2005 23:14:16 -0000 1.2 --- cvs_howto.dox 9 Jan 2006 19:31:34 -0000 1.3 *************** *** 10,17 **** \verbatim ! joeuser% cd /local/cvsroot/directory ! joeuser% cvs -d:pserver:ano...@cv...:/cvsroot/adobe-source login ! joeuser% cvs -z3 -d:pserver:ano...@cv...:/cvsroot/adobe-source checkout adobe-source ! joeuser% cvs -d:pserver:ano...@cv...:/cvsroot/adobe-source logout \endverbatim --- 10,17 ---- \verbatim ! cd /local/cvsroot/directory ! cvs -d:pserver:ano...@cv...:/cvsroot/adobe-source login ! cvs -z3 -d:pserver:ano...@cv...:/cvsroot/adobe-source checkout adobe-source ! cvs -d:pserver:ano...@cv...:/cvsroot/adobe-source logout \endverbatim *************** *** 23,30 **** \verbatim ! joeuser% cd /local/cvsroot/directory ! joeuser% cvs -d:pserver:ano...@cv...:80/cvsroot/adobe-source login ! joeuser% cvs -z3 -d:pserver:ano...@cv...:80/cvsroot/adobe-source checkout adobe-source ! joeuser% cvs -d:pserver:ano...@cv...:80/cvsroot/adobe-source logout \endverbatim --- 23,30 ---- \verbatim ! cd /local/cvsroot/directory ! cvs -d:pserver:ano...@cv...:80/cvsroot/adobe-source login ! cvs -z3 -d:pserver:ano...@cv...:80/cvsroot/adobe-source checkout adobe-source ! cvs -d:pserver:ano...@cv...:80/cvsroot/adobe-source logout \endverbatim Index: news.dox =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/documentation/sources/structure/news.dox,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** news.dox 6 Jan 2006 18:35:20 -0000 1.5 --- news.dox 9 Jan 2006 19:31:34 -0000 1.6 *************** *** 8,12 **** \par January 05, 2005 - ASL 1.0.12 Released Highlights of the 1.0.12 changes include: ! - The Generic Image Library (GIL) has been added. This library allows for writing generic imaging algorithms with performance comparable to hand-coding for a particular image type - Lubomir has been hard at work getting the GIL tutorial and design guide ready for release. We anticipate it within a couple weeks. - ASL now compiles against Boost 1.33.1 --- 8,12 ---- \par January 05, 2005 - ASL 1.0.12 Released Highlights of the 1.0.12 changes include: ! - The \ref asl_gil has been added. This library allows for writing generic imaging algorithms with performance comparable to hand-coding for a particular image type - Lubomir has been hard at work getting the GIL tutorial and design guide ready for release. We anticipate it within a couple weeks. - ASL now compiles against Boost 1.33.1 |
Update of /cvsroot/adobe-source/adobe-source/adobe/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12808/adobe/source Modified Files: adam.cpp adam_evaluate.cpp adam_parser.cpp array.cpp dictionary.cpp eve.cpp eve_evaluate.cpp eve_parser.cpp expression_parser.cpp expression_parser.hpp extents.cpp istream.cpp lex_shared.cpp lex_shared.hpp lex_shared_fwd.hpp lex_stream.cpp lex_stream.hpp lex_stream_fwd.hpp md5.cpp metrowerks_mach_o.hpp name.cpp parser_shared.cpp parser_shared.hpp string_pool.cpp string_pool.hpp swap.hpp test_configuration.cpp thread_id.cpp token.cpp token.hpp toroid.hpp typeinfo.cpp unicode.cpp value.cpp virtual_machine.cpp xml_element_parser.cpp xml_element_parser.hpp xml_lex.cpp xml_lex.hpp xml_lex_fwd.hpp xml_token.cpp xml_token.hpp xstring.cpp zuid.cpp zuid_sys_dep.cpp zuid_sys_dep.hpp zuid_uuid.cpp zuid_uuid.hpp Log Message: asl 1.0.12 Index: toroid.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/toroid.hpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** toroid.hpp 2 Dec 2005 02:52:56 -0000 1.2 --- toroid.hpp 6 Jan 2006 18:35:22 -0000 1.3 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /****************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /****************************************************************************************************/ *************** *** 12,15 **** --- 12,17 ---- /****************************************************************************************************/ + #include <adobe/config.hpp> + #include <boost/array.hpp> #include <boost/noncopyable.hpp> Index: xml_lex_fwd.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/xml_lex_fwd.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** xml_lex_fwd.hpp 2 Dec 2005 02:52:56 -0000 1.3 --- xml_lex_fwd.hpp 6 Jan 2006 18:35:22 -0000 1.4 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 12,15 **** --- 12,17 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <adobe/source/lex_shared_fwd.hpp> Index: xml_token.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/xml_token.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** xml_token.hpp 2 Dec 2005 02:52:56 -0000 1.4 --- xml_token.hpp 6 Jan 2006 18:35:22 -0000 1.5 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 12,15 **** --- 12,17 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <adobe/source/lex_shared_fwd.hpp> Index: xml_element_parser.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/xml_element_parser.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** xml_element_parser.cpp 2 Dec 2005 02:52:56 -0000 1.5 --- xml_element_parser.cpp 6 Jan 2006 18:35:22 -0000 1.6 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: virtual_machine.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/virtual_machine.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** virtual_machine.cpp 7 Nov 2005 18:00:43 -0000 1.6 --- virtual_machine.cpp 6 Jan 2006 18:35:22 -0000 1.7 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: eve_evaluate.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/eve_evaluate.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** eve_evaluate.cpp 3 Mar 2005 06:58:38 -0000 1.2 --- eve_evaluate.cpp 6 Jan 2006 18:35:22 -0000 1.3 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: lex_stream.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/lex_stream.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** lex_stream.hpp 2 Dec 2005 02:52:56 -0000 1.5 --- lex_stream.hpp 6 Jan 2006 18:35:22 -0000 1.6 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 12,15 **** --- 12,17 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <adobe/source/lex_stream_fwd.hpp> #include <adobe/istream.hpp> Index: value.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/value.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** value.cpp 7 Jul 2005 22:00:08 -0000 1.4 --- value.cpp 6 Jan 2006 18:35:22 -0000 1.5 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: xml_lex.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/xml_lex.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** xml_lex.hpp 2 Dec 2005 02:52:56 -0000 1.5 --- xml_lex.hpp 6 Jan 2006 18:35:22 -0000 1.6 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /**************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /**************************************************************************************************/ *************** *** 12,15 **** --- 12,17 ---- /**************************************************************************************************/ + #include <adobe/config.hpp> + #include <adobe/source/xml_lex_fwd.hpp> #include <adobe/source/xml_token.hpp> Index: metrowerks_mach_o.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/metrowerks_mach_o.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** metrowerks_mach_o.hpp 2 Dec 2005 02:52:56 -0000 1.3 --- metrowerks_mach_o.hpp 6 Jan 2006 18:35:22 -0000 1.4 *************** *** 1,10 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ /* These are the switches required to build using the MSL C header for a Mach-O target. --- 1,12 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ + #include <adobe/config.hpp> + /* These are the switches required to build using the MSL C header for a Mach-O target. Index: token.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/token.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** token.cpp 8 Aug 2005 16:37:17 -0000 1.4 --- token.cpp 6 Jan 2006 18:35:22 -0000 1.5 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: adam.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/adam.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** adam.cpp 2 Dec 2005 02:52:56 -0000 1.6 --- adam.cpp 6 Jan 2006 18:35:22 -0000 1.7 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) *************** *** 120,123 **** --- 120,132 ---- /*************************************************************************************************/ + struct scope_count : boost::noncopyable + { + scope_count(std::size_t& x) : value_m(x) { ++value_m; } + ~scope_count() { --value_m; } + + private: + std::size_t& value_m; + }; + /*************************************************************************************************/ *************** *** 359,362 **** --- 368,372 ---- virtual_machine_t machine_m; get_stack_t get_stack_m; + std::size_t get_count_m; }; *************** *** 586,590 **** input_index_m(&cell_t::name_m), output_index_m(&cell_t::name_m), ! set_count_m(0) { machine_m.set_variable_lookup(boost::bind(&implementation_t::get, boost::ref(*this), _1)); --- 596,601 ---- input_index_m(&cell_t::name_m), output_index_m(&cell_t::name_m), ! set_count_m(0), ! get_count_m(0) { machine_m.set_variable_lookup(boost::bind(&implementation_t::get, boost::ref(*this), _1)); *************** *** 1305,1309 **** --- 1316,1333 ---- // REVISIT (sparent) : At this point all output cells must be resolved as must all relations! + + + #ifndef NDEBUG + + { + relation_cell_set_t::iterator iter(adobe::find_if_not(relation_cell_set_m, &relation_cell_t::resolved_m)); + if (iter != relation_cell_set_m.end()) + { + throw adobe::stream_error_t("(warning) relation unnecessary and ignored.", iter->position_m); + } + } + + #endif // end grotesque solve loop! *************** *** 1427,1441 **** tracked_value_t sheet_t::implementation_t::get(adobe::name_t variable_name) { ! /* ! REVISIT (sparent) : Because we allow for indirect references through logic cells - we only keep the ouput ! cells on the stack - the means we will only detect cycles in output cells. We need to add a check for cycles in general. ! ! A general cycle check could simply count the number of get calls an ensure that it doesn't nest too deeply. ! (Too deeply is simply > the number of cells in the sheet). ! Note that we do not guarantee that a logic cell has a consistant value - it is simply an expression ! holder. */ // If the variable is on the top of the stack then we assume it must refer to an input cell. --- 1451,1468 ---- tracked_value_t sheet_t::implementation_t::get(adobe::name_t variable_name) { ! scope_count scope(get_count_m); ! /* ! REVISIT (sparent) - I think the complete number of cells is too many - maybe only logic and ! output? */ + if (get_count_m > cell_set_m.size()) + { + std::string error; + error << "cycle detected, consider using a relate { } clause."; + throw std::logic_error(error); + } + // If the variable is on the top of the stack then we assume it must refer to an input cell. Index: zuid_uuid.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/zuid_uuid.hpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** zuid_uuid.hpp 2 Dec 2005 02:52:56 -0000 1.2 --- zuid_uuid.hpp 6 Jan 2006 18:35:22 -0000 1.3 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated and others Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated and others Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 10,13 **** --- 10,15 ---- #define ADOBE_ZUID_UUID_HPP + #include <adobe/config.hpp> + #include <adobe/zuid.hpp> Index: eve.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/eve.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** eve.cpp 2 Dec 2005 02:52:56 -0000 1.11 --- eve.cpp 6 Jan 2006 18:35:22 -0000 1.12 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) *************** *** 482,487 **** ! typedef postorder_iterator<cursor> postorder_iterator; ! typedef preorder_iterator<cursor> preorder_iterator; std::pair<postorder_iterator, postorder_iterator> postorder_range() --- 482,487 ---- ! typedef edge_iterator<cursor, adobe::forest_trailing_edge> postorder_iterator; ! typedef edge_iterator<cursor, adobe::forest_leading_edge> preorder_iterator; std::pair<postorder_iterator, postorder_iterator> postorder_range() *************** *** 542,566 **** eve_t::iterator eve_t::implementation_t::add_view_element(iterator parent, const insert_element_t& element) { ! iterator actual_dest; ! ! if (parent != iterator()) ! { ! iterator temp(parent); ! ! temp.set_leading(false); ! ! actual_dest = temp; ! } ! else ! { ! actual_dest = proxies_m.end(); ! } ! ! eve_t::iterator result(proxies_m.insert(actual_dest, implementation::view_proxy_t(element.initial_m, element.parameters_m, element.signals_m))); if (!element.is_container_type_m) ! result->geometry_m.placement_m = place_leaf; ! return result; } --- 542,554 ---- eve_t::iterator eve_t::implementation_t::add_view_element(iterator parent, const insert_element_t& element) { ! if (parent == iterator()) parent = proxies_m.end(); ! ! parent = proxies_m.insert(adobe::trailing_of(parent), ! implementation::view_proxy_t(element.initial_m, element.parameters_m, element.signals_m)); if (!element.is_container_type_m) ! parent->geometry_m.placement_m = place_leaf; ! return parent; } Index: dictionary.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/dictionary.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** dictionary.cpp 3 Mar 2005 06:58:38 -0000 1.2 --- dictionary.cpp 6 Jan 2006 18:35:22 -0000 1.3 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: expression_parser.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/expression_parser.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** expression_parser.cpp 1 Sep 2005 23:32:42 -0000 1.4 --- expression_parser.cpp 6 Jan 2006 18:35:22 -0000 1.5 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: md5.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/md5.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** md5.cpp 2 Jun 2005 23:14:17 -0000 1.1 --- md5.cpp 6 Jan 2006 18:35:22 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated and others Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated and others Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: parser_shared.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/parser_shared.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** parser_shared.cpp 1 Sep 2005 23:32:42 -0000 1.4 --- parser_shared.cpp 6 Jan 2006 18:35:22 -0000 1.5 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: xml_token.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/xml_token.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** xml_token.cpp 1 Sep 2005 23:32:42 -0000 1.3 --- xml_token.cpp 6 Jan 2006 18:35:22 -0000 1.4 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: token.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/token.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** token.hpp 2 Dec 2005 02:52:56 -0000 1.5 --- token.hpp 6 Jan 2006 18:35:22 -0000 1.6 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 12,15 **** --- 12,17 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <adobe/name_fwd.hpp> #include <adobe/once.hpp> Index: xml_element_parser.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/xml_element_parser.hpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** xml_element_parser.hpp 2 Dec 2005 02:52:56 -0000 1.6 --- xml_element_parser.hpp 6 Jan 2006 18:35:22 -0000 1.7 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: xml_lex.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/xml_lex.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** xml_lex.cpp 7 Nov 2005 18:00:43 -0000 1.4 --- xml_lex.cpp 6 Jan 2006 18:35:22 -0000 1.5 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: test_configuration.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/test_configuration.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** test_configuration.cpp 3 Mar 2005 06:58:38 -0000 1.2 --- test_configuration.cpp 6 Jan 2006 18:35:22 -0000 1.3 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: lex_shared.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/lex_shared.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** lex_shared.hpp 2 Dec 2005 02:52:56 -0000 1.5 --- lex_shared.hpp 6 Jan 2006 18:35:22 -0000 1.6 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 12,15 **** --- 12,17 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <adobe/source/lex_shared_fwd.hpp> #include <adobe/string.hpp> Index: unicode.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/unicode.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** unicode.cpp 7 Jul 2005 22:00:08 -0000 1.3 --- unicode.cpp 6 Jan 2006 18:35:22 -0000 1.4 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: xstring.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/xstring.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** xstring.cpp 2 Dec 2005 02:52:56 -0000 1.6 --- xstring.cpp 6 Jan 2006 18:35:22 -0000 1.7 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: lex_stream.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/lex_stream.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** lex_stream.cpp 1 Sep 2005 23:32:42 -0000 1.6 --- lex_stream.cpp 6 Jan 2006 18:35:22 -0000 1.7 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: adam_parser.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/adam_parser.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** adam_parser.cpp 8 Aug 2005 16:37:17 -0000 1.3 --- adam_parser.cpp 6 Jan 2006 18:35:22 -0000 1.4 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) *************** *** 527,532 **** --- 527,539 ---- bool adam_parser::is_relate_decl(line_position_t& position, array_t& expression, relation_set_t& relation_set, std::string& brief) { + /* + REVISIT (sparent) : A relation_set_t needs a position independent of the continitional + expression in order to report overconstraints. Here we "fudge" and reuse the conditional + expression for this purpose. + */ + if (is_conditional(position, expression)) require_token(relate_k); else if (!is_token(relate_k)) return false; + else position = next_position(); require_token(open_brace_k); Index: name.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/name.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** name.cpp 2 Dec 2005 02:52:56 -0000 1.5 --- name.cpp 6 Jan 2006 18:35:22 -0000 1.6 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: parser_shared.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/parser_shared.hpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** parser_shared.hpp 2 Dec 2005 02:52:56 -0000 1.6 --- parser_shared.hpp 6 Jan 2006 18:35:22 -0000 1.7 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 12,15 **** --- 12,17 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <adobe/istream_fwd.hpp> #include <adobe/name_fwd.hpp> Index: zuid_sys_dep.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/zuid_sys_dep.hpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** zuid_sys_dep.hpp 6 Oct 2005 20:43:17 -0000 1.2 --- zuid_sys_dep.hpp 6 Jan 2006 18:35:22 -0000 1.3 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated and others Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated and others Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) *************** *** 39,42 **** --- 39,43 ---- #include <adobe/config.hpp> + #include <adobe/md5.hpp> Index: string_pool.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/string_pool.hpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** string_pool.hpp 2 Dec 2005 02:52:56 -0000 1.6 --- string_pool.hpp 6 Jan 2006 18:35:22 -0000 1.7 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 12,15 **** --- 12,17 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <boost/noncopyable.hpp> Index: lex_shared.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/lex_shared.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** lex_shared.cpp 6 Oct 2005 20:43:17 -0000 1.4 --- lex_shared.cpp 6 Jan 2006 18:35:22 -0000 1.5 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: istream.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/istream.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** istream.cpp 7 Nov 2005 18:00:43 -0000 1.7 --- istream.cpp 6 Jan 2006 18:35:22 -0000 1.8 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: string_pool.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/string_pool.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** string_pool.cpp 2 Dec 2005 02:52:56 -0000 1.4 --- string_pool.cpp 6 Jan 2006 18:35:22 -0000 1.5 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: array.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/array.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** array.cpp 3 May 2005 23:50:25 -0000 1.4 --- array.cpp 6 Jan 2006 18:35:22 -0000 1.5 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: typeinfo.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/typeinfo.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** typeinfo.cpp 3 Mar 2005 06:58:38 -0000 1.2 --- typeinfo.cpp 6 Jan 2006 18:35:22 -0000 1.3 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: expression_parser.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/expression_parser.hpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** expression_parser.hpp 2 Dec 2005 02:52:56 -0000 1.6 --- expression_parser.hpp 6 Jan 2006 18:35:22 -0000 1.7 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 10,13 **** --- 10,15 ---- #define ADOBE_EXPRESSION_PARSER_HPP + #include <adobe/config.hpp> + #include <adobe/istream.hpp> #include <adobe/dictionary_fwd.hpp> Index: extents.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/extents.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** extents.cpp 3 May 2005 23:50:25 -0000 1.1 --- extents.cpp 6 Jan 2006 18:35:22 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: zuid.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/zuid.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** zuid.cpp 2 Jun 2005 23:14:17 -0000 1.1 --- zuid.cpp 6 Jan 2006 18:35:22 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated and others Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated and others Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: eve_parser.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/eve_parser.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** eve_parser.cpp 3 Mar 2005 06:58:38 -0000 1.2 --- eve_parser.cpp 6 Jan 2006 18:35:22 -0000 1.3 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: thread_id.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/thread_id.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** thread_id.cpp 2 Jun 2005 23:14:17 -0000 1.1 --- thread_id.cpp 6 Jan 2006 18:35:22 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated and others Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated and others Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: zuid_sys_dep.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/zuid_sys_dep.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** zuid_sys_dep.cpp 7 Nov 2005 18:00:43 -0000 1.4 --- zuid_sys_dep.cpp 6 Jan 2006 18:35:22 -0000 1.5 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated and others Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated and others Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: adam_evaluate.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/adam_evaluate.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** adam_evaluate.cpp 3 May 2005 23:50:25 -0000 1.4 --- adam_evaluate.cpp 6 Jan 2006 18:35:22 -0000 1.5 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: lex_stream_fwd.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/lex_stream_fwd.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** lex_stream_fwd.hpp 2 Dec 2005 02:52:56 -0000 1.5 --- lex_stream_fwd.hpp 6 Jan 2006 18:35:22 -0000 1.6 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 12,15 **** --- 12,17 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #ifdef __MWERKS__ #pragma warn_implicitconv off Index: swap.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/swap.hpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** swap.hpp 2 Dec 2005 02:52:56 -0000 1.2 --- swap.hpp 6 Jan 2006 18:35:22 -0000 1.3 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 10,13 **** --- 10,15 ---- #define ADOBE_SWAP_HPP + #include <adobe/config.hpp> + #include <algorithm> Index: zuid_uuid.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/zuid_uuid.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** zuid_uuid.cpp 2 Jun 2005 23:14:17 -0000 1.1 --- zuid_uuid.cpp 6 Jan 2006 18:35:22 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated and others Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated and others Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: lex_shared_fwd.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/lex_shared_fwd.hpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** lex_shared_fwd.hpp 2 Dec 2005 02:52:56 -0000 1.6 --- lex_shared_fwd.hpp 6 Jan 2006 18:35:22 -0000 1.7 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 12,15 **** --- 12,17 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <adobe/algorithm.hpp> #include <adobe/name.hpp> |
From: Foster B. <fos...@us...> - 2006-01-06 18:36:15
|
Update of /cvsroot/adobe-source/adobe-source/adobe/test/unicode In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12808/adobe/test/unicode Modified Files: main.cpp Log Message: asl 1.0.12 Index: main.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/unicode/main.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** main.cpp 7 Nov 2005 18:00:45 -0000 1.1 --- main.cpp 6 Jan 2006 18:35:27 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) |
Update of /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12808/adobe/test/begin/examples Modified Files: alignment_test.adm alignment_test.eve checkbox_control.adm checkbox_control.eve checkbox_radio_button_suite.adm checkbox_radio_button_suite.eve e01_clipping_path.adm e01_clipping_path.eve edit_text_suite.adm edit_text_suite.eve find_and_replace.adm find_and_replace.eve find_and_replace_options.eve image_size.adm image_size.eve image_size_auto.eve list_box_emulator.adm list_box_emulator.eve named_function_suite.adm named_function_suite.eve progress_bar_suite.adm progress_bar_suite.eve slider_suite.adm slider_suite.eve sort_lines.adm sort_lines.eve tabs_and_panels.adm tabs_and_panels.eve Log Message: asl 1.0.12 Index: checkbox_radio_button_suite.eve =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/checkbox_radio_button_suite.eve,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** checkbox_radio_button_suite.eve 7 Jul 2005 22:00:27 -0000 1.1 --- checkbox_radio_button_suite.eve 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: sort_lines.eve =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/sort_lines.eve,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** sort_lines.eve 2 Dec 2005 02:52:56 -0000 1.2 --- sort_lines.eve 6 Jan 2006 18:35:23 -0000 1.3 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated; All Rights Reserved. ANOMALIES WRT ORIGINAL DIALOG: (OD stands for Original Dialog) --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) ANOMALIES WRT ORIGINAL DIALOG: (OD stands for Original Dialog) Index: named_function_suite.eve =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/named_function_suite.eve,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** named_function_suite.eve 7 Jul 2005 22:00:28 -0000 1.1 --- named_function_suite.eve 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: list_box_emulator.eve =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/list_box_emulator.eve,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** list_box_emulator.eve 7 Jul 2005 22:00:28 -0000 1.1 --- list_box_emulator.eve 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: sort_lines.adm =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/sort_lines.adm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** sort_lines.adm 7 Jul 2005 22:00:28 -0000 1.1 --- sort_lines.adm 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: progress_bar_suite.eve =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/progress_bar_suite.eve,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** progress_bar_suite.eve 7 Jul 2005 22:00:28 -0000 1.1 --- progress_bar_suite.eve 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: checkbox_radio_button_suite.adm =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/checkbox_radio_button_suite.adm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** checkbox_radio_button_suite.adm 7 Jul 2005 22:00:27 -0000 1.1 --- checkbox_radio_button_suite.adm 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: edit_text_suite.eve =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/edit_text_suite.eve,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** edit_text_suite.eve 8 Aug 2005 16:37:25 -0000 1.2 --- edit_text_suite.eve 6 Jan 2006 18:35:23 -0000 1.3 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: progress_bar_suite.adm =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/progress_bar_suite.adm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** progress_bar_suite.adm 7 Jul 2005 22:00:28 -0000 1.1 --- progress_bar_suite.adm 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: find_and_replace_options.eve =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/find_and_replace_options.eve,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** find_and_replace_options.eve 7 Jul 2005 22:00:28 -0000 1.1 --- find_and_replace_options.eve 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: alignment_test.adm =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/alignment_test.adm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** alignment_test.adm 7 Jul 2005 22:00:27 -0000 1.1 --- alignment_test.adm 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: e01_clipping_path.adm =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/e01_clipping_path.adm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** e01_clipping_path.adm 7 Jul 2005 22:00:27 -0000 1.1 --- e01_clipping_path.adm 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: image_size.eve =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/image_size.eve,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** image_size.eve 1 Sep 2005 23:32:43 -0000 1.3 --- image_size.eve 6 Jan 2006 18:35:23 -0000 1.4 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: e01_clipping_path.eve =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/e01_clipping_path.eve,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** e01_clipping_path.eve 7 Jul 2005 22:00:28 -0000 1.1 --- e01_clipping_path.eve 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: list_box_emulator.adm =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/list_box_emulator.adm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** list_box_emulator.adm 7 Jul 2005 22:00:28 -0000 1.1 --- list_box_emulator.adm 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: image_size.adm =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/image_size.adm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** image_size.adm 7 Jul 2005 22:00:28 -0000 1.1 --- image_size.adm 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: find_and_replace.eve =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/find_and_replace.eve,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** find_and_replace.eve 2 Dec 2005 02:52:56 -0000 1.2 --- find_and_replace.eve 6 Jan 2006 18:35:23 -0000 1.3 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated; All Rights Reserved. ANOMALIES WRT ORIGINAL DIALOG: (OD stands for Original Dialog) --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) ANOMALIES WRT ORIGINAL DIALOG: (OD stands for Original Dialog) Index: slider_suite.eve =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/slider_suite.eve,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** slider_suite.eve 7 Jul 2005 22:00:28 -0000 1.1 --- slider_suite.eve 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: slider_suite.adm =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/slider_suite.adm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** slider_suite.adm 7 Jul 2005 22:00:28 -0000 1.1 --- slider_suite.adm 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: find_and_replace.adm =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/find_and_replace.adm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** find_and_replace.adm 7 Jul 2005 22:00:28 -0000 1.1 --- find_and_replace.adm 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: named_function_suite.adm =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/named_function_suite.adm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** named_function_suite.adm 7 Jul 2005 22:00:28 -0000 1.1 --- named_function_suite.adm 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: checkbox_control.eve =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/checkbox_control.eve,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** checkbox_control.eve 7 Jul 2005 22:00:27 -0000 1.1 --- checkbox_control.eve 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ *************** *** 14,16 **** button(name: "Close", default: true, action: @cancel, horizontal: align_right); ! } \ No newline at end of file --- 16,18 ---- button(name: "Close", default: true, action: @cancel, horizontal: align_right); ! } Index: edit_text_suite.adm =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/edit_text_suite.adm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** edit_text_suite.adm 7 Jul 2005 22:00:28 -0000 1.1 --- edit_text_suite.adm 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: alignment_test.eve =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/alignment_test.eve,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** alignment_test.eve 7 Jul 2005 22:00:27 -0000 1.1 --- alignment_test.eve 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: image_size_auto.eve =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/image_size_auto.eve,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** image_size_auto.eve 8 Aug 2005 16:37:25 -0000 1.2 --- image_size_auto.eve 6 Jan 2006 18:35:23 -0000 1.3 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: tabs_and_panels.eve =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/tabs_and_panels.eve,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** tabs_and_panels.eve 7 Jul 2005 22:00:28 -0000 1.1 --- tabs_and_panels.eve 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: tabs_and_panels.adm =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/tabs_and_panels.adm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** tabs_and_panels.adm 7 Jul 2005 22:00:28 -0000 1.1 --- tabs_and_panels.adm 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ Index: checkbox_control.adm =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/examples/checkbox_control.adm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** checkbox_control.adm 7 Jul 2005 22:00:27 -0000 1.1 --- checkbox_control.adm 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2004 Adobe Systems Incorporated; All Rights Reserved. */ --- 1,6 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated ! Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt ! or a copy at http://opensource.adobe.com/licenses.html) */ |
From: Foster B. <fos...@us...> - 2006-01-06 18:36:15
|
Update of /cvsroot/adobe-source/adobe-source/adobe/future In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12808/adobe/future Modified Files: assemblage.hpp closed_hash.hpp cmd_system.hpp count_minmax.hpp enum_ops.hpp file_slurp.hpp find_closest.hpp iomanip.hpp iomanip_asl_cel.hpp iomanip_fwd.hpp iomanip_pdf.hpp iomanip_xml.hpp manip.hpp memory.hpp menu_system.hpp ternary_function.hpp timer.hpp Log Message: asl 1.0.12 Index: assemblage.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/assemblage.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** assemblage.hpp 2 Dec 2005 02:52:55 -0000 1.5 --- assemblage.hpp 6 Jan 2006 18:35:20 -0000 1.6 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 10,13 **** --- 10,15 ---- #define ADOBE_ASSEMBLAGE_HPP + #include <adobe/config.hpp> + #include <list> #include <vector> Index: file_slurp.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/file_slurp.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** file_slurp.hpp 2 Dec 2005 02:52:55 -0000 1.4 --- file_slurp.hpp 6 Jan 2006 18:35:20 -0000 1.5 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 12,15 **** --- 12,17 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <boost/filesystem/operations.hpp> #include <boost/filesystem/fstream.hpp> Index: timer.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/timer.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** timer.hpp 6 Oct 2005 20:43:16 -0000 1.3 --- timer.hpp 6 Jan 2006 18:35:20 -0000 1.4 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: manip.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/manip.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** manip.hpp 2 Dec 2005 02:52:55 -0000 1.3 --- manip.hpp 6 Jan 2006 18:35:20 -0000 1.4 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 16,19 **** --- 16,21 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <iostream> Index: enum_ops.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/enum_ops.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** enum_ops.hpp 2 Dec 2005 02:52:55 -0000 1.5 --- enum_ops.hpp 6 Jan 2006 18:35:20 -0000 1.6 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 12,16 **** /*************************************************************************************************/ ! #include <boost/config.hpp> /*************************************************************************************************/ --- 12,16 ---- /*************************************************************************************************/ ! #include <adobe/config.hpp> /*************************************************************************************************/ Index: menu_system.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/menu_system.hpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** menu_system.hpp 2 Dec 2005 02:52:55 -0000 1.1 --- menu_system.hpp 6 Jan 2006 18:35:20 -0000 1.2 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 12,15 **** --- 12,17 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <adobe/name.hpp> #include <adobe/future/enum_ops.hpp> Index: find_closest.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/find_closest.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** find_closest.hpp 2 Dec 2005 02:52:55 -0000 1.3 --- find_closest.hpp 6 Jan 2006 18:35:20 -0000 1.4 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 12,16 **** --- 12,19 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <iterator> + #include <adobe/future/ternary_function.hpp> Index: iomanip_fwd.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/iomanip_fwd.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** iomanip_fwd.hpp 2 Dec 2005 02:52:55 -0000 1.3 --- iomanip_fwd.hpp 6 Jan 2006 18:35:20 -0000 1.4 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 16,19 **** --- 16,21 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <iosfwd> Index: iomanip_pdf.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/iomanip_pdf.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** iomanip_pdf.hpp 2 Dec 2005 02:52:55 -0000 1.3 --- iomanip_pdf.hpp 6 Jan 2006 18:35:20 -0000 1.4 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 16,19 **** --- 16,21 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <adobe/future/iomanip.hpp> Index: cmd_system.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/cmd_system.hpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** cmd_system.hpp 2 Dec 2005 02:52:55 -0000 1.1 --- cmd_system.hpp 6 Jan 2006 18:35:20 -0000 1.2 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 12,15 **** --- 12,17 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <adobe/name.hpp> *************** *** 31,37 **** { public: ! typedef boost::function<void ()> command_proc_t; ! typedef boost::function<void (adobe::name_t, bool)> command_enabled_callback_t; ! typedef boost::signals::connection connection_t; command_system_t(); --- 33,39 ---- { public: ! typedef boost::function<void ()> command_proc_t; ! typedef boost::function<void (bool)> command_enabled_callback_t; ! typedef boost::signals::connection connection_t; command_system_t(); *************** *** 45,51 **** connection_t monitor_enabled(adobe::name_t name, const command_enabled_callback_t& callback); - //void insert_target(adobe::name_t name, const adobe::value_t& value); - - //void update(); private: struct implementation_t; --- 47,50 ---- Index: count_minmax.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/count_minmax.hpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** count_minmax.hpp 2 Dec 2005 02:52:55 -0000 1.2 --- count_minmax.hpp 6 Jan 2006 18:35:20 -0000 1.3 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 12,15 **** --- 12,17 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <boost/range.hpp> #include <boost/range/iterator.hpp> Index: iomanip.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/iomanip.hpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** iomanip.hpp 2 Dec 2005 02:52:55 -0000 1.6 --- iomanip.hpp 6 Jan 2006 18:35:20 -0000 1.7 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 16,19 **** --- 16,21 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <cassert> #include <iosfwd> Index: closed_hash.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/closed_hash.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** closed_hash.hpp 2 Dec 2005 02:52:55 -0000 1.3 --- closed_hash.hpp 6 Jan 2006 18:35:20 -0000 1.4 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 12,15 **** --- 12,17 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <climits> #include <cstddef> Index: ternary_function.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/ternary_function.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ternary_function.hpp 2 Dec 2005 02:52:55 -0000 1.3 --- ternary_function.hpp 6 Jan 2006 18:35:20 -0000 1.4 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 10,13 **** --- 10,15 ---- #define ADOBE_TERNARY_FUNCTION_HPP + #include <adobe/config.hpp> + /*************************************************************************************************/ Index: iomanip_xml.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/iomanip_xml.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** iomanip_xml.hpp 2 Dec 2005 02:52:55 -0000 1.3 --- iomanip_xml.hpp 6 Jan 2006 18:35:20 -0000 1.4 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 16,19 **** --- 16,21 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <adobe/future/source/iomanip.hpp> Index: memory.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/memory.hpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** memory.hpp 2 Dec 2005 02:52:55 -0000 1.6 --- memory.hpp 6 Jan 2006 18:35:20 -0000 1.7 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 18,21 **** --- 18,23 ---- #define ADOBE_MEMORY_HPP + #include <adobe/config.hpp> + #include <cassert> #include <functional> Index: iomanip_asl_cel.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/iomanip_asl_cel.hpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** iomanip_asl_cel.hpp 2 Dec 2005 02:52:55 -0000 1.2 --- iomanip_asl_cel.hpp 6 Jan 2006 18:35:20 -0000 1.3 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /*************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /*************************************************************************************************/ *************** *** 16,19 **** --- 16,21 ---- /*************************************************************************************************/ + #include <adobe/config.hpp> + #include <adobe/future/iomanip.hpp> |
From: Foster B. <fos...@us...> - 2006-01-06 18:36:14
|
Update of /cvsroot/adobe-source/adobe-source/adobe/future/widgets/headers/win In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12808/adobe/future/widgets/headers/win Modified Files: event_dispatcher.hpp metrics.hpp ui_core_implementation.hpp wincast.hpp Log Message: asl 1.0.12 Index: event_dispatcher.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/widgets/headers/win/event_dispatcher.hpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** event_dispatcher.hpp 2 Dec 2005 02:52:55 -0000 1.2 --- event_dispatcher.hpp 6 Jan 2006 18:35:21 -0000 1.3 *************** *** 4,8 **** or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /****************************************************************************************************/ // --- 4,8 ---- or a copy at http://opensource.adobe.com/licenses.html) */ ! /****************************************************************************************************/ // *************** *** 24,27 **** --- 24,29 ---- /****************************************************************************************************/ + #include <adobe/config.hpp> + #include <map> #include <string> Index: wincast.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/widgets/headers/win/wincast.hpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** wincast.hpp 2 Dec 2005 02:52:55 -0000 1.2 --- wincast.hpp 6 Jan 2006 18:35:21 -0000 1.3 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /****************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /****************************************************************************************************/ *************** *** 10,13 **** --- 10,15 ---- #define ADOBE_WINCAST_HPP + #include <adobe/config.hpp> + /****************************************************************************************************/ Index: ui_core_implementation.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/widgets/headers/win/ui_core_implementation.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ui_core_implementation.hpp 2 Dec 2005 02:52:55 -0000 1.4 --- ui_core_implementation.hpp 6 Jan 2006 18:35:21 -0000 1.5 *************** *** 1,8 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /****************************************************************************************************/ --- 1,8 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ ! /****************************************************************************************************/ *************** *** 12,15 **** --- 12,17 ---- /****************************************************************************************************/ + #include <adobe/config.hpp> + #include <windows.h> #include <Commctrl.h> Index: metrics.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/widgets/headers/win/metrics.hpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** metrics.hpp 2 Dec 2005 02:52:55 -0000 1.2 --- metrics.hpp 6 Jan 2006 18:35:21 -0000 1.3 *************** *** 4,8 **** or a copy at http://opensource.adobe.com/licenses.html) */ ! #include <adobe/config.hpp> /****************************************************************************************************/ // --- 4,8 ---- or a copy at http://opensource.adobe.com/licenses.html) */ ! /****************************************************************************************************/ // *************** *** 19,22 **** --- 19,24 ---- /****************************************************************************************************/ + #include <adobe/config.hpp> + #include <windows.h> #include <uxtheme.h> |
From: Foster B. <fos...@us...> - 2006-01-06 18:36:14
|
Update of /cvsroot/adobe-source/adobe-source/adobe/test/zuidgen In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12808/adobe/test/zuidgen Modified Files: main.cpp Removed Files: zuidgen.mcp Log Message: asl 1.0.12 Index: main.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/zuidgen/main.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** main.cpp 2 Jun 2005 23:14:44 -0000 1.1 --- main.cpp 6 Jan 2006 18:35:27 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- zuidgen.mcp DELETED --- |
From: Foster B. <fos...@us...> - 2006-01-06 18:36:14
|
Update of /cvsroot/adobe-source/adobe-source/ide_projects/vc8/Release In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12808/ide_projects/vc8/Release Modified Files: editor.adm editor.eve Log Message: asl 1.0.12 Index: editor.eve =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/ide_projects/vc8/Release/editor.eve,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** editor.eve 2 Dec 2005 02:52:57 -0000 1.1 --- editor.eve 6 Jan 2006 18:35:28 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: editor.adm =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/ide_projects/vc8/Release/editor.adm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** editor.adm 2 Dec 2005 02:52:57 -0000 1.1 --- editor.adm 6 Jan 2006 18:35:28 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) |
From: Foster B. <fos...@us...> - 2006-01-06 18:36:14
|
Update of /cvsroot/adobe-source/adobe-source/adobe/test/xstr_bench In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12808/adobe/test/xstr_bench Modified Files: main.cpp Log Message: asl 1.0.12 Index: main.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/xstr_bench/main.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** main.cpp 6 Oct 2005 20:43:19 -0000 1.1 --- main.cpp 6 Jan 2006 18:35:27 -0000 1.2 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) |
Update of /cvsroot/adobe-source/adobe-source/adobe/test/begin/resources In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12808/adobe/test/begin/resources Modified Files: editor.adm editor.eve msvc7.begin.exe.manifest msvc8.debug.begin.exe.manifest msvc8.release.begin.exe.manifest Log Message: asl 1.0.12 Index: msvc8.release.begin.exe.manifest =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/resources/msvc8.release.begin.exe.manifest,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** msvc8.release.begin.exe.manifest 7 Nov 2005 18:00:44 -0000 1.1 --- msvc8.release.begin.exe.manifest 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 6,10 **** type="win32" name="AdobeSystems.AdobeSourceLibraries.Begin" /> ! <description>Adobe Begin copyright 2005 Adobe Systems Incorporated</description> <dependency> <dependentAssembly> --- 6,10 ---- type="win32" name="AdobeSystems.AdobeSourceLibraries.Begin" /> ! <description>Adobe Begin Copyright 2005-2006 Adobe Systems Incorporated</description> <dependency> <dependentAssembly> Index: msvc7.begin.exe.manifest =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/resources/msvc7.begin.exe.manifest,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** msvc7.begin.exe.manifest 7 Nov 2005 18:00:44 -0000 1.1 --- msvc7.begin.exe.manifest 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 6,10 **** type="win32" name="AdobeSystems.AdobeSourceLibraries.Begin" /> ! <description>Adobe Begin copyright 2005 Adobe Systems Incorporated</description> <dependency> <dependentAssembly> --- 6,10 ---- type="win32" name="AdobeSystems.AdobeSourceLibraries.Begin" /> ! <description>Adobe Begin Copyright 2005-2006 Adobe Systems Incorporated</description> <dependency> <dependentAssembly> Index: editor.eve =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/resources/editor.eve,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** editor.eve 6 Oct 2005 20:43:18 -0000 1.3 --- editor.eve 6 Jan 2006 18:35:23 -0000 1.4 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) Index: msvc8.debug.begin.exe.manifest =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/resources/msvc8.debug.begin.exe.manifest,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** msvc8.debug.begin.exe.manifest 7 Nov 2005 18:00:44 -0000 1.1 --- msvc8.debug.begin.exe.manifest 6 Jan 2006 18:35:23 -0000 1.2 *************** *** 6,10 **** type="win32" name="AdobeSystems.AdobeSourceLibraries.Begin" /> ! <description>Adobe Begin copyright 2005 Adobe Systems Incorporated</description> <dependency> <dependentAssembly> --- 6,10 ---- type="win32" name="AdobeSystems.AdobeSourceLibraries.Begin" /> ! <description>Adobe Begin Copyright 2005-2006 Adobe Systems Incorporated</description> <dependency> <dependentAssembly> Index: editor.adm =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/begin/resources/editor.adm,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** editor.adm 6 Oct 2005 20:43:18 -0000 1.3 --- editor.adm 6 Jan 2006 18:35:23 -0000 1.4 *************** *** 1,4 **** /* ! Copyright 2005 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) --- 1,4 ---- /* ! Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) |