Krita source reorganization
Boudewijn Rempt
boud at valdyas.org
Wed Sep 28 13:03:57 CEST 2005
I've touched on this topic before, but now I've also done a little work: make
a table of everything in sdk, core and ui and determine what should go where.
Basically, I propose four shared libraries:
libkritasdk
libkritaui
libkrita
libkritapart
The sdk and ui library can be used by plugins: they contain interfaces a
plugin should implement, and interfaces for classes the krita application and
image handling library provides. Libkrita should be(come) a reusable library
for handling layered raster images. Libkritapart is the koffice application
and includes the canvas and event handling.
This is just a re-ordering of header files. When implementing this proposal we
will have to create more header files with just abstract classes and more
kis_xxx_impl classes.
What's important here is: have I misplaced something, and what needs to be
added.
I want to hide the various registry classes behind one registry that uses a
resource type as an extra parameter (but how do I create a global static that
everyone can access, or rather, where do I do that? In the sdk I guess), and
a factory to make it possible to create paint devices and layers and so on,
also in an extensible fashion. I'm wondering whether it would be desirable to
make it possible for plugins to create new paint device types.
Here's the redistribution of our core and ui classes:
sdk (helper classes)
sdk/kis_id.h
sdk/kis_global.h
sdk/kis_composite_op.h
core/kis_rect.h
core/kis_cursor.h
core/kis_integer_maths.h
core/kis_vec.h
core/kis_point.h
core/kis_shared_ptr_vector.h
core/kis_matrix.h
core/kis_boundary.h
core/kis_config.h
core/kis_types.h
core/kis_registry.h (new)
sdk/core
image/ (implemented by libkrita)
sdk/kis_paint_device_factory.h
sdk/kis_channelinfo.h
sdk/kis_paint_device.h
core/kis_color.h
core/kis_fill_painter.h
core/kis_convolution_painter.h
core/kis_gradient_painter.h
core/kis_painter.h
core/kis_layer.h
core/kis_histogram.h
core/kis_histogram_producer.h
core/kis_pixel.h
core/kis_image.h
core/kis_iterators_pixel.h
core/kis_selection.h
core/resources/kis_palette.h
core/resources/kis_profile.h
core/resources/kis_resource.h
core/resources/kis_gradient.h
core/resources/kis_resourceserver.h
core/resources/kis_brush.h
core/resources/kis_pattern.h
ui/kis_resource_mediator.h
core/kis_selected_transaction.h
ui/ (implemented by kritapart)
sdk/kis_canvas_subject.h
sdk/kis_canvas_controller.h
sdk/kis_undo_adapter.h
ui/kis_progress_display_interface.h
sdk/plugins (interface implemented by plugins and base classes extended by
plugins)
/api
core/tool/kis_tool.h
core/kis_filter.h
core/paintop/kis_paintop.h
sdk/kis_colorspace.h
sdk/kis_canvas_observer.h
/bases
core/color_strategy/kis_f32_base_colorspace.h
core/color_strategy/kis_f16half_base_colorspace.h
core/color_strategy/kis_abstract_colorspace.h
core/color_strategy/kis_u16_base_colorspace.h
core/color_strategy/kis_u8_base_colorspace.h
core/tool/kis_tool_shape.h
core/tool/kis_tool_paint.h
core/tool/kis_tool_freehand.h
core/tool/kis_tool_non_paint.h
libkritaui (widgets that are useful only within Krita)
ui/kis_color_cup.h
ui/kis_multi_bool_filter_widget.h
sdk/kis_filter_config_widget.h
ui/kis_previewdialog.h
ui/kis_multi_integer_filter_widget.h
ui/kis_cmb_composite.h
ui/kis_progress_subject.h
ui/kis_cmb_idlist.h
ui/kis_previewview.h
ui/kis_selection_options.h
ui/kis_iconwidget.h
ui/kis_matrix_widget.ui.h
ui/kis_multi_double_filter_widget.h
ui/kis_paintop_box.h
libkritapart (the gui (a koffice part) with all dialogs. Contains
implementations also of sdk/core/ui)
core/kis_factory.h
ui/kis_dlg_progress.h
ui/kis_dlg_preferences.h
ui/kis_pattern_chooser.h
ui/kis_dlg_transform.h
ui/kis_dlg_image_properties.h
ui/kis_gradient_chooser.h
ui/kis_dlg_layer_properties.h
ui/kis_dlg_new_layer.h
ui/kis_dlg_create_img.h
ui/kis_brush_chooser.h
ui/kis_label_zoom.h
core/kis_event.h
core/kis_double_click_event.h
core/kis_button_press_event.h
core/kis_button_release_event.h
core/kis_button_event.h
core/kis_move_event.h
kis_canvas.h
kis_doc.h
kis_view.h
ui/kis_label_progress.h
core/kis_aboutdata.h
ui/kis_label_cursor_pos.h
ui/kis_autobrush.h
ui/kis_autogradient.h
ui/kis_itemchooser.h
core/kis_tool_manager.h
core/kis_selection_manager.h
core/kis_filter_manager.h
core/kis_part_layer.h
core/kis_command.h
core/kis_clipboard.h
libkrita (the layered raster image manipulation library, should be reusable,
contains also implentations of sdk/core/image)
core/color_strategy/kis_basic_histogram_producers.h
core/color_strategy/tests/kis_color_conversions_tester.h
core/color_strategy/kis_xyz_colorspace.h
core/color_strategy/kis_color_conversions.h
core/color_strategy/kis_alpha_colorspace.h
core/resources/kis_imagepipe_brush.h
core/resources/kis_autogradient_resource.h
core/resources/kis_autobrush_resource.h
core/resources/kis_alpha_mask.h
core/tests/kis_image_tester.h
core/tests/kis_integer_maths_tester.h
core/tiles/kis_tileddatamanager.h
core/tiles/kis_datamanager.h
core/tiles/kis_tilemanager.h
core/tiles/tests/kis_tiled_data_tester.h
core/tiles/kis_tile.h
core/tiles/kis_tilediterator.h
core/tiles/kis_memento.h
core/tiles/kis_iterator.h
core/tiles/kis_tile_global.h
core/kis_paint_device_impl.h
core/tool/kis_tool_factory.h
core/tool/kis_tool_dummy.h
core/tool/kis_tool_controller.h
core/kis_transform_visitor.h
core/kis_scale_visitor.h
core/kis_background.h
core/visitors/kis_merge.h
core/visitors/kis_flatten.h
core/kis_iteratorpixeltrait.h
core/kis_rotate_visitor.h
core/kis_nameserver.h
core/kis_paint_device_visitor.h
core/kis_iterator_proxy.h
core/kis_transaction.h
core/kis_filter_strategy.h
core/strategy/kis_strategy_move.h
core/kis_annotation.h
core/paintop/kis_paintop_registry.h
core/kis_filter_registry.h
core/color_strategy/kis_colorspace_factory_registry.h
core/tool/kis_tool_registry.h
sdk/kis_generic_registry.h
kofficeui (widgets useful for all of koffice)
ui/kis_histogram_view.h
ui/kis_double_widget.h
ui/kis_hsv_widget.h
ui/kis_layerbox.h
ui/kis_rgb_widget.h
ui/kis_dlg_apply_profile.h
ui/kis_controlframe.h
ui/kis_palette_widget.h
ui/kis_ruler.h
ui/kis_icon_item.h
ui/kis_birdeye_box.h
ui/kis_guide.h
ui/kcurve.h
ui/kis_gradient_slider_widget.h
ui/kis_gray_widget.h
ui/kis_colorwheel.h
ui/kobirdeyepanel.h
ui/kis_previewwidget.h
--
Boudewijn Rempt
http://www.valdyas.org/fading/index.cgi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kimageshop/attachments/20050928/f33a2283/attachment.pgp
More information about the kimageshop
mailing list