diff options
Diffstat (limited to '')
-rw-r--r-- | info/libgamma.texinfo | 479 |
1 files changed, 0 insertions, 479 deletions
diff --git a/info/libgamma.texinfo b/info/libgamma.texinfo index c0e96cb..3094e95 100644 --- a/info/libgamma.texinfo +++ b/info/libgamma.texinfo @@ -1,474 +1,3 @@ -\input texinfo @c -*-texinfo-*- - -@c %%**start of header -@setfilename libgamma.info -@settitle libgamma -@afourpaper -@documentencoding UTF-8 -@documentlanguage en -@finalout -@c %%**end of header - - -@dircategory Library -@direntry -* libgamma: (libgamma). Display server abstraction layer for gamma ramp adjustments -@end direntry - - -@copying -Copyright @copyright{} 2014, 2015 Mattias Andr@'ee - -@quotation -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.3 or -any later version published by the Free Software Foundation; with no -Invariant Sections, with no Front-Cover Texts, and with no Back-Cover -Texts. A copy of the license is included in the section entitled -``GNU Free Documentation License''. -@end quotation -@end copying - -%>set -u -%>cd src/extract -%>export PATH=".:../../info:${PATH}" - -@ifnottex -@node Top -@top libgamma -- Display server abstraction layer for gamma ramp adjustments -@insertcopying -@end ifnottex - -@titlepage -@title libgamma -@subtitle Display server abstraction layer for gamma ramp adjustments -@author by Mattias Andr@'e (maandree) - -@page -@c @center `' -@vskip 0pt plus 1filll -@insertcopying -@end titlepage - -@contents - - - -@menu -* Overview:: Brief overview of @command{libgamma}. -* Jargon:: The jargon of @command{libgamma}. -* Compiling:: Configuring, compiling and installing @command{libgamma}. -* Linking:: Linking your software to @command{libgamma}. -* API:: @command{libgamma}'s advanced programming interface. -* GNU Free Documentation License:: Copying and sharing this manual. -@end menu - - - -@node Overview -@chapter Overview - -@command{libgamma} is a C library that aims to -abstract away the display server when adjusting -the colours curves for monitors via gamma ramps, -and to be cross-platform. - -@command{libgamma} have support for the X RandR -(Resize and Rotate) extension, the X VidMode -extension and under Linux the Direct Rendering -Manager which lets software work with graphics -outside of graphical environments. Additionally -@command{libgamma} have support for Windows -Graphics Device Interface (Windows GDI) under -Windows and Quartz using CoreGraphics under OS X. -However Windows GDI and Quartz/CoreGraphics do -not receive first-party testing on their target -platforms but do receive first-party testing -using a compatibility layer that translates -the calls to RandR calls. Neither does -@command{libgamma}, currently, receive testing -on any of the BSD:s, it is only tested on GNU/Linux. - -Furthermore @command{libgamma} provides a dummy -method that can be used to ignore adjustments -and can be controlled from another program to -pretend like the environment has changed. This -can be used test how well your software handles -such events. It can also be configured at runtime -to use another adjustment method such as RandR. - - - -@node Jargon -@chapter Jargon - -@command{libgamma} uses a small jargon, -parts of which is loaned from X.org, -and some is commonly used jargon. - -@table @asis -@item adjustment method [libgamma] -A combination of the display server -and a protocol used to tell to the -display server. - -@item display server [X.org] -The program used to display graphical -elements to the monitors. In @command{libgamma} -we also call the non-graphical environment -a display server. - -@item display [X.org] -@itemx site [libgamma] -An instance of a display server. -Non-graphical environment are only -covered by `site'. - -@item screen [X.org] -A group of CRTC:s within a display. - -@item CRTC -@itemx cathode ray tube controller -Controller for the output on monitor. -Mapping from CRTC:s to encoders is an injection. - -@item monitor -The physical medium used to display -text and graphics. - -@item partition [libgamma] -Umbrella term for `screen' and -`graphics card'. - -@item page [libgamma] -The desktop workspace or virtual -terminal that is displayed on a CRTC. -(This jargon is not currently used, -but is reserved for future features.) - -@item output [X.org] -A connector and its encoder. - -@item connector -Physical port on the graphics card where -a monitor can be plugged in. If and only -if the connector is disabled it does not -have a port and does not have a CRTC. - -@item encoder -Translation layer between CRTC:s and connectors. - -@item gamma ramp -@itemx colour curve -A lookup table that translates an encoded -value for a subpixel into its output value. - -@item subpixel -@itemx colour channel -One of the three colours that makes up a pixel: -red, green or blue. - -@item gamma ramp size -@itemx gamma stops -The number of possible values on the encoding -axis of a gamma ramp. - -@end table - - - -@node Compiling -@chapter Compiling - -The build @command{libgamma} you will need -to run @command{./configure} before you -run @command{make}. @file{./configure} is -not a configuration script from the GNU build -system, rather it is just a simple shell script. -Each adjustment method needs selected, if none -are selected no adjustment method will be compiled -into @command{libgamma}. They can either be -selected explicitly and independently or by -operating system. - -@table @option -@item --enable-dummy -Enables the dummy adjustment method. - -@item --enable-randr -@itemx --linux -@itemx --bsd -Enables the X RandR extension adjustment method. - -@item --enable-vidmode -@itemx --linux -@itemx --bsd -Enables the X VidMode extension adjustment method. - -@item --enable-drm -@itemx --linux -Enables the Direct Rendering Manager adjustment method. - -@item --enable-w32gdi -@itemx --windows -Enables the Windows GDI adjustment method. - -@item --enable-quartz -@itemx --mac-os-x -Enables the Quartz/CoreGraphics adjustment method. - -@item --enable-w32gdi=fake -Enables the Windows GDI adjustment method using -compatibility layer to either RandR or ``/dev/null'' -depending on whether RandR is enabled or not. - -@item --enable-quartz=fake -Enables the Quartz/CoreGraphics adjustment method -using a compatibility layer to either RandR or -``/dev/null'' depending on whether RandR is -enabled or not. - -@end table - -You may prefix anything to `bsd', for example -@option{--freebsd} or @option{--openbsd}. Any -prefix will be discard, but it may be a good -idea incase there will be a difference in the -future between the platforms. - -Developers of @command{libgamma} and developers -who use @command{libgamma} for their software may -also want to use @option{--debug} which enables -extra checks to produce better error reports. -Additionally @option{--debug} adds the @option{-Og -g} -flags to the C compiler rather than @option{-Ofast}. -Developers can also use the developer options -instead of @option{--debug}, the adjustment and -operating systems. - -@table @option -@item --linux=developer -@itemx --developer -Enables all adjustment methods, with compatibility -layers for Windows GDI and Quartz/CoreGraphics. -Also enables @option{--debug}. - -@item --bsd=developer -Enables all adjustment methods, except the Linux -Direct Rendering Manager adjustment method, with -compatibility layers for Windows GDI and -Quartz/CoreGraphics. -Also enables @option{--debug}. - -@item --windows=developer -Enables the dummy adjustment method and the -Windows GDI adjustment method. -Also enables @option{--debug}. - -@item --mac-os-x=developer -Enables the dummy adjustment method and the -Quartz/CoreGraphics adjustment method. -Also enables @option{--debug}. -@end table - -Configuring with @option{--windows} or -@option{--windows=developer} will also add -configurations to the make script needed -to compile for Windows. @option{--mac-os-x} or -@option{--mac-os-x=developer} will do add -configurations to the make script needed -to compile for OS X. - -When you have configured @command{libgamma} -using @command{./configure} you can compile -the library with @command{make}. Straight up -@command{make} without additions options -should be all you need. But you can also use -specify some build rules. - -@table @option -@item default -Builds the library, the test and the info manual. - -@item all -Builds the library, the test and manual to all -available formats: info, PDF, DVI, PostScript. - -@item lib -Builds the library. - -@item test -Builds the test, which in turns builts the library. - -@item doc -Builds the manual to all available formats: -info, PDF, DVI, PostScript. - -@item info -Builds the info manual. - -@item pdf -Builds the PDF manual. - -@item dvi -Builds the DVI manual. - -@item ps -Builds the PostScript manual. - -@end table - -You can also use @command{make clean} -to remove all compiled files, and -@command{make distclean} to remove -all compiled files and the files -generated by @command{./configure}. - -To install @command{libgamma} once -it is compiled run @command{make install} -and then @command{make uninstall} once -you want to uninstall the library. -When running @command{make install} -include the option @option{DESTDIR="$@{pkgdir@}"}, -where @file{$@{pkgdir@}} is the directory -you want the files to be installed to -instead of @file{/}, this could for example -be @file{/mnt} where you have mounted another -installed operating system or a temporary -location used by the package manager. -This is also a set of options to specify -how the system's file system hierarchy is -structured. - -@table @option -@item PREFIX -The package path prefix, if you want to install -to another root, set @option{DESTDIR} to that root. -Defaults to @file{/usr}. - -@item LIB -The library path excluding prefix. -Defaults to @file{/lib}. - -@item INCLUDE -The library header path excluding prefix. -Defaults to @file{/include}. - -@item DATA -The resource path excluding prefix. -Defaults to @file{/share}. - -@item LIBDIR -The library path including prefix. -Defaults to @file{$(PREFIX)$(LIB)}. - -@item INCLUDEDIR -The library header including prefix -Defaults to @file{$(PREFIX)$(INCLUDE)}. - -@item DATADIR -The resource path including prefix. -Defaults to @file{$(PREFIX)$(DATA)}. - -@item DOCDIR -The generic documentation path including prefix. -Defaults to @file{$(DATADIR)/doc}. - -@item INFODIR -The info manual documentation path including prefix. -Defaults to @file{$(DATADIR)/info}. - -@item LICENSEDIR -The license base path including prefix. -Defaults to @file{$(DATADIR)/licenses} -@end table - -There is also an option to specify the package name -of the library: @option{PKGNAME}. This only affects -the name and location of files installed into -@option{DOCDIR}, @option{INFODIR} and @option{LICENSEDIR}. -It does not affect the name of the library. - -For more control on what should be installed, -subsitute @option{install} from @command{make install} -for one or more of the following rules: - -@table @option -@item install -Macro for @option{install-base} and @option{install-info}. -Installs everything but only the manual in the info format. -@command{install-info} will not be execute the install the -manual to the @file{dir} file for @command{info}. - -@item install-all -Macro for @option{install-base} and @option{install-doc}. -Installs everything including all available formats of the manual. -@command{install-info} will not be execute the install the -manual to the @file{dir} file for @command{info}. - -@item install-base -Macro for @option{install-lib}, @option{install-include} and -@option{install-copyright}. -Installs the library, the headers files for the library -so that you can compile other software that uses the library, -and the copyright file and the license file. - -@item install-lib -Installs the library, but not its header files. - -@item install-include -Installs the library's header files but not the -library itself. - -@item install-copyright -Macro for @option{install-copying}, and @option{install-license}. -Installs the copyright file and the license file. - -@item install-copying -Installs the copyright file but not the license file. - -@item install-license -Installs the license file but not the copyright file. - -@item install-doc -Macro for @option{install-info}, @option{install-pdf}, -@option{install-ps} and @option{install-dvi}. -Installs the manual in all available formats. -@command{install-info} will not be execute the install the -manual to the @file{dir} file for @command{info}. - -@item install-info -Installs the info manual. -@command{install-info} will not be execute the install the -manual to the @file{dir} file for @command{info}. - -@item install-pdf -Installs the PDF manual. - -@item install-ps -Installs the PostScript manual. - -@item install-dvi -Installs the DVI manual. -@end table - - - -@node Linking -@chapter Linking - -When compiling your program use @command{libgamma}, -you will not need to do anything for the compiling -phase. But for the linking phase, will need to add -the option @option{-lgamma}. Currently -@command{libgamma}, does not provide a pkg-config file. - -Keep in mind that @command{libgamma} is GNU General -Public License version 3 software for your freedom -and for the freedom of all. - - - @node API @chapter API @@ -1324,11 +853,3 @@ Additionally, if the error code is the value of @code{LIBGAMMA_DEVICE_REQUIRE_GROUP} the required group will be printed with its numerical value and, if known, its name. - - -@node GNU Free Documentation License -@appendix GNU Free Documentation License -@include fdl.texinfo - -@bye - |