/* ciihtd.h
** Copyright (C) 1990, 1993 by Xerox Corporation. All rights reserved.
** Michael Plass, June 7, 1993 3:32:18 pm PDT
*/
#ifndef ciihtd←h
#define ciihtd←h
/* c++ compatibility */
#ifdef c←plusplus
#define EXTERN extern "C"
#else
#define EXTERN extern
#endif
#include "cii.h"
/**********************************************************************
**
** Creation of specific device handles
**
** The procedures in this section require a large number of
** parameters in order to fully specify the characteristics
** of the device. However, in most cases there are reasonable
** default values. To allow new parameters (with appropriate
** defaults) to be added without demanding source changes in
** the clients of this interface, the creation of handles is a
** three-step procedure.
** 1. The client requests an initialized parameter block, specific
** to the kind of output device that is required.
** 2. The client fills in those fields which differ from the
** default.
** 3. The client calls the device creation routine.
** In many cases, further calls must be made to fully initialize
** the device handle.
**
**
**********************************************************************/
/**********************
** Halftoning device
**********************/
/* CII←ScanMode: For specifying orientation of device rasters.
*/
typedef enum {
CII←slowRightFastUp,
CII←slowDownFastRight,
CII←slowLeftFastDown,
CII←slowUpFastLeft,
CII←slowRightFastDown,
CII←slowDownFastLeft,
CII←slowLeftFastUp,
CII←slowUpFastRight
} CII←ScanMode;
typedef struct CII←HTDParamRep {
unsigned sSizeDevice; /* scan count of device space */
unsigned fSizeDevice; /* scan length of device space */
CII←ScanMode scanMode; /* default slowRightFastUp */
CII←VectorRep surfaceUnitsPerInch; /* default {1.0,1.0} */
unsigned logicalDevice; /* default 0 */
CII←RasterRep * raster; /* Must be 1 bit per pixel */
} CII←HTDParamRep;
EXTERN CII←RES
CII←HTD←SetDefaults(CII←HTDParamRep* paramRepResult);
EXTERN CII←RES
CII←HTD←Create(CII←HTDParamRep* param, CII←Handle* hResult);
EXTERN CII←RES
CII←HTD←SetBitmap(
CII←Handle h, /* Must be from CII←HTD←Create */
CII←RasterRep* buffer /* Must be 1 bit per pixel; may not change size*/
);
/* What is this one? - mfp.
** In the Cedar impl, it is a NOP.
*/
EXTERN CII←RES
CII←HTD←Destroy(CII←Handle h);
/* The following two call should be phased out in favor
** of a stack-allocated paramRep.
*/
typedef CII←HTDParamRep* CII←HTDParam;
EXTERN CII←RES
CII←HTD←Defaults(CII←HTDParam *p);
EXTERN CII←RES
CII←HTD←DefaultsDestroy(CII←HTDParam p);
#endif