KCMS CMM Developer's Guide
검색에만이 책은
PDF로 이 문서 다운로드

Preface

The KCMS CMM Developer's Guide describes how to create a Kodak Color Management System (KCMS(TM)) color management module (CMM). It provides information on how to use the KCMS foundation library, which is a graphics porting interface (GPI) implemented in C++. These C++ interfaces link the device-independent layer of the KCMS library with the CMM and enable the flow of data from the application to the CMM.
Use this manual with the KCMS CMM Reference Manual, which provides detailed information on all C++ classes in the KCMS foundation library.

Who Should Use This Guide

Use this guide if you are a C++ programmer interested in:
  • Writing your own color management module (CMM)
  • Creating your own profile format
  • Adding attributes or tags to the ICC profile format
  • Overriding various class methods

Before You Read This Guide

Check all of the following for any KCMS-specific or system release-specific information that you might need:
  • You should be familiar with the Kodak Color Management System (KCMS) API, which is part of the Software Developer's Kit (SDK). See the following manual:

    · KCMS Application Developer's Guide

  • You should also have an understanding of C++ and Solaris(TM) dynamic loading technology. Solaris dynamic loading is discussed in the Linker and Libraries Guide and in the following manual pages:

    · ld(1)

    · dlopen(3)

    · dlclose(3)

    · dlerror(3)

    · dlsym(3)

  • A basic understanding of color science is also assumed. Color science references are included in the Bibliography of the KCMS Application Developer's Guide.
  • See the on-line SUNWrdm packages for information on bugs and issues, engineering news, and patches. For Solaris installation bugs and for late-breaking bugs, news, and patch information, see the Installation Instructions for Solaris 2.6 (SPARC Platform Edition) and the Installation Instructions for Solaris 2.6 (Intel Platform Edition) manuals.
  • For SPARC systems, consult the updates your hardware manufacturer may have provided.

How This Guide Is Organized

Chapter 1, "Class Descriptions," briefly describes each of the relevant classes in the KCMS CMM class hierarchy.
Chapter 2, "CMM : A Runtime Derivative," describes how to create a CMM that is a runtime derivative. It also discusses each of the KCMS classes from which you can derive or extend.
Chapter , "KCMS Framework Operations," provides examples of how some of the C++ methods interface with the KCMS framework API.
Chapter 4, "KcsIO Derivative," describes how to derive from the KcsIO base class.
Chapter 5, "KcsProfile Derivative," describes how to derive from the KcsProfile base class.
Chapter 6, "KcsProfileFormat Derivative," describes how to derive from the KcsProfileFormat base class.
Chapter 7, "KcsXform Derivative," describes how to derive from the KcsXform base class.
Chapter 8, "KcsStatus Extension," describes how to extend the KcsStatus base class.
Appendix A, "Supported Devices," describes how to name and install your own profile.

Related Books

The following is a list of recommended books that can help you accomplish the tasks described in this guide:

Ordering Sun Documents

The SunDocsSM program provides more than 250 manuals from Sun Microsystems, Inc. If you live in the United States, Canada, Europe, or Japan, you can purchase documentation sets or individual manuals using this program.
For a list of documents and how to order them, see the catalog section of the SunExpress(TM) Internet site at http://www.sun.com/sunexpress.

Note - The term "x86" refers to the Intel 8086 family of microprocessor chips, including Pentium and Pentium Pro processors and compatible microprocessor chips made by AMD and Cyrix. In this document, the term "x86" refers to the overall platform architecture, whereas "Intel Platform Edition" appears in the product name.

What Typographic Changes and Symbols Mean

The following table describes the type changes and symbols used in this guide:.
Table P-1
Typeface or SymbolMeaningExample
AaBbCc123The names of commands, files, and directories; on-screen computer outputEdit your .login file. Use ls -a to list all files. system% You have mail.
AaBbCc123What you type, contrasted with on-screen computer output

 system%su   
 Password:  

AaBbCc123Command-line placeholder: replace with a real name or valueTo delete a file, type rm filename.
AaBbCc123Book titles, new words or terms, or words to be emphasizedRead Chapter 6 in User's Guide. These are called class options. You must be root to do this.
Code samples are included in boxes and may display the following:
%UNIX C shell promptsystem%
$UNIX Bourne and Korn shell promptsystem$
#Superuser prompt, all shellssystem#

Shell Prompts in Command Examples

The following table shows the default system prompt and superuser prompt for the C shell, Bourne shell, and Korn shell.
Table P-2
ShellPrompt
C shell promptmachine_name%
C shell superuser promptmachine_name#
Bourne shell and Korn shell prompt$
Bourne shell and Korn shell superuser prompt#

Equivalent Terms In This Guide

For historic reasons, this guide uses several equivalent Kodak and ICC terms. The terms evolved at different times. Development of the ICC specification introduced new ICC terms with meanings the same as (or similar to) already existing Kodak terms.
You should be familiar with the terms listed in the table below, as you will encounter them in the ICC specification and KCMS color management documentation, as well as in the KCMS header files and example programs. The terms are defined as they are introduced in this guide.
Table P-3
Kodak TermICC Term
attributetag
device color profile (DCP)input, display, or output profile
effects color profile (ECP)abstract profile
complete color profile (CCP)device link profile
profile format Id or magic numberprofile file signature
reference color space (RCS)profile connection space (PCS)

Note - The text in this guide uses the term attribute instead of tag, (but code examples and header files may use tag for the historic reasons previously mentioned.