Skip to content

Commit

Permalink
initial proof-of-concept darktable checkin. basic functionality is th…
Browse files Browse the repository at this point in the history
…ere.

git-svn-id: https://darktable.svn.sourceforge.net/svnroot/darktable@1 2165daf7-ed08-4abd-b3da-b2de91a31a1b
  • Loading branch information
jhanika committed Apr 7, 2009
0 parents commit f52987d
Show file tree
Hide file tree
Showing 61 changed files with 24,095 additions and 0 deletions.
674 changes: 674 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
SUBDIRS=src
EXTRA_DIST=darktable.gtkrc darktable.glade
29 changes: 29 additions & 0 deletions README
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
this is darktable, a free raw photo viewer and organiser.
darktable is not a light table. it's digital.

to build it, you need:

- lcms
- gtk+-2.0
- libglade-2.0
- libgthread-2.0
- cairo
- MagickCore

other used packages (supplied in the source tree):

- LibRaw
- nikon_curve (taken from ufraw)

then, type:

$ autoreconf --install
$ ./configure [--enable-qwerty] [--enable-debug]
$ make
$ src/darkroom

(the first step is only necessary when building from svn for the first time)
and enjoy!

send any bugreports to me: hanatos@gmail.com

95 changes: 95 additions & 0 deletions TODO
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
new bugs:
- exif tag in libraw not really handled well (aperture+time missing)
- JPEG loading needs shrink + orientation
- dev switch resolution AFTER setting gui stuff.
control->width is updated in expose, and configure
is called in dev_enter. (just before) :(
- image_load_job should take img id and get it from cache himself!
(this is a serious problem if not all images fit into cache)

broken since sqlite backend:
- remove last film in favour of film table with timestamp.

feature requests:
- GMM for color model using EM in opencv!
- img table + date inserted/modified
- faster (unsafe) sql option: PRAGMA synchronous=OFF
- cache auf platte, echte bilder irgendwo auf dvd/platte extern/kamera chip etc
- moeglicherweise ECHTE bilder (dias im schrank)
- bilder sortieren, evtl manuell (mehrere kameras in einen film usw)
- zoom in in 3 steps?
- hide gui triangles andere form und switch in/out
- inotify dir watching
- execute iop: pass global image window!
- zoom in dev mode via mouse wheel.
- dt_film_sort with global settings
- tags and some tag search facility
- brightness/exposure highlight histogram stuff

bugs:
- strange G_OBJECT cast errors when loading pfm/exr/pdf?
- control add history item > 10 (in gui representation. core can do)!
- import folder file chooser sometimes not sized appropriately
- histogram updates in fixed pipeline come too early/uselessly?
- export muss erst dev mode haben, sonst kaputt.

priority list:
- selection behaviour (ctl shift etc)
- magick + exif (read)!
- clean up dev events: add history-> cache up -> fixed pipeline up
- modular one-file plugin support:
src/imageio/saturation.{c,h}:
- dr_gui_XX_reset -> reset op to neutral/default params
dr_gui_XX_init -> init gui elements and callbacks
dr_iop_XX -> transform buffers
- add expander to right vbox,
init gui with expander->child
expose: if op !=, gui_reset
reserve imageop, need string hash?
- image properties when zoomed in a lot
- clean up namings/modules.
- move expose to ctl or gui?
- split ctl and sched?
- control panel with buttons for lib->dev->lib

image ops:
- white balance
- exposure
- luma/chroma denoising
- crop

usability:
- aoe, keys to change +-= table_cols/1 resp.
- write out image_t at quit (exif, filenames, selected flags)
- navigation: buttons for zoom levels
- closeup in 3:1 5:1 or 2:1 ?
- disable dev controls/make invisible in lib?
- make directory loading interruptible
- adjust navigation preview in dev on the fly?
- image loading: load thumbnails first, if any.
- navigation widget for lib?
- curve widget presets
- x-axis adjusters
- active live histogram (exposure etc)
- all functions mouse-accessible
- library graph with keyword edges.
- expander with exif data (+filename of saved image)

look:
- dev img border
- border between center and outer panels?
- adjust .gtkrc to have consistently cool look even in filechooser
- end markers :)
- dev full res image possibly smaller as lo-res (paint border with bg)

cleanup:
- QWERTZ/dvorak keyboard shortcuts run-time switching

cache:
- user profile guided prefetching for full raw load!
- load cache from disk only if md5sum matches

build/packaging:
- consistent prefix naming: dev, lib, ctl, gui
- doxygen documentation

70 changes: 70 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
AC_INIT([darktable], [0.1], [hanatos@gmail.com])
AM_INIT_AUTOMAKE([-Wall -Werror foreign dist-bzip2])
AC_PROG_CC
AC_PROG_CXX
AC_PROG_RANLIB
PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.14)
PKG_CHECK_MODULES(CAIRO, [cairo])
PKG_CHECK_MODULES(GTHREAD, [gthread-2.0])
PKG_CHECK_MODULES(GLADE, [libglade-2.0])
PKG_CHECK_MODULES(SQLITE, [sqlite3])

dnl *** check for MagickCore ***
AC_CHECK_PROGS(MAGICKCONFIG, [Magick-config GraphicsMagick-config])
usemagick=0
if test -n "$MAGICKCONFIG"; then
ac_save_CPPFLAGS="$CPPFLAGS"
ac_save_LIBS="$LIBS"
MAGICK_CPPFLAGS="`$MAGICKCONFIG --cppflags`"
MAGICK_LIBS="`$MAGICKCONFIG --ldflags` `$MAGICKCONFIG --libs`"
CPPFLAGS="$CPPFLAGS $MAGICK_CPPFLAGS"
LIBS="$MAGICK_LIBS $LIBS"
AC_CHECK_FUNC(ExportImagePixels, usemagick=1, AC_MSG_NOTICE([ImageMagick/GraphicsMagick does not support the function
ExportImagePixels. Please upgrade to ImageMagick 5.5.7 or newer (or
the corresponding GraphicsMagick version)]))
CPPFLAGS="$ac_save_CPPFLAGS"
LIBS="$ac_save_LIBS"
fi

if test "$usemagick" != 1; then
AC_CHECK_LIB(z, zlibVersion, test, AC_MSG_ERROR([You must have libz(-devel) installed]))

AC_CHECK_LIB(png, png_sig_cmp, test, AC_MSG_ERROR([You must have libpng(-devel) installed]), -lz -lm)
MAGICK_CPPFLAGS=
MAGICK_LIBS="-lpng -lz -lm"
else
AC_DEFINE(HAVE_MAGICK, 1, [Whether the ImageMagick or GraphicsMagick libraries are available])
fi
AC_SUBST(MAGICK_CPPFLAGS)
AC_SUBST(MAGICK_LIBS)

dnl *** Check for LittleCMS ***
AC_CHECK_LIB(lcms, cmsOpenProfileFromFile,
[AC_DEFINE(HAVE_LCMS, 1, [Define if you have the LittleCMS development environment])
LCMS_LIBS="-llcms"])
AC_SUBST(LCMS_LIBS)

dnl *** check for lamer keyboard ***
AC_ARG_ENABLE(qwerty, [ --enable-qwerty Enable QWERTY key accels], [if test "$enableval" = yes; then
AC_DEFINE(HAVE_QWERTY, 1, [Use to switch from default dvorak key accels to qwerty])
fi
])

AC_MSG_CHECKING([whether to enable debugging])
AC_ARG_ENABLE(debug,
AC_HELP_STRING([--enable-debug], [build debug executable]))
if test "$enable_debug" = "yes"; then
CFLAGS="$CFLAGS -Wall -O0 -g -D_DEBUG"
AC_MSG_RESULT([yes])
else
CFLAGS="$CFLAGS -Wall -O4"
AC_MSG_RESULT([no])
fi

AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([
Makefile
src/Makefile
src/LibRaw/Makefile
])
AC_OUTPUT
Loading

0 comments on commit f52987d

Please sign in to comment.