Level 2 Compatibility: The setscreen and currentscreen Operators

Similar documents
Using save Outside the Server Loop

Simple Text Setting Calculations for PostScript Language Drivers

The StemSnap Hint Operator for Type 1 Font Programs

Supporting Level 2 Functionality

Font Switching Optimizations

CID-Keyed Font Technology Overview

Emulation of the setstrokeadjust Operator

Supporting Data Compression in PostScript Level 2 and the filter Operator

Improving Image Performance by Using Color Lookup Tables

Acrobat Widths-Only CIDFont Tutorial ADOBE SYSTEMS INCORPORATED

Printer Systems-Based Separations

Recording Output Intentions for Color Critical Workflows ADOBE SYSTEMS INCORPORATED

The Adobe-CNS1-6 Character Collection

Adobe Serial and Parallel Communications Protocols Specification

FontLab. TECHNICAL NOTE #002 (Mac) Keyboard shortcuts. Copyright 2001 FontLab Ltd. THE DIGITAL TYPE DESIGN TOOLKIT

Supporting Device Features

Intel Setup and Configuration Service. (Lightweight)

Emulation of the execform Operator

Photofont Start 2.0. for Macintosh and Windows. User Manual

SUPPORT MATRIX. HYCU OMi Management Pack for Citrix

IronPort Plug-in for Outlook VERSION 1.5 RELEASE NOTES

SUPPORT MATRIX. Comtrade OMi Management Pack for Citrix

x10data Smart Client 6.5 for Windows Mobile Installation Guide

NVIDIA nforce 790i SLI Chipsets

SDK White Paper. Vertex Lighting Achieving fast lighting results

CHECK PROCESSING. A Select Product of Cougar Mountain Software

Organize and Deliver Digital Assets Using Adobe Experience Manager v6.x Student Workbook

GPU LIBRARY ADVISOR. DA _v8.0 September Application Note

Timing Techniques. Adobe Developer Support. Technical Note # March Adobe Systems Incorporated

x10data Smart Client 7.0 for Windows Mobile Installation Guide

Adobe Acrobat Reader Help

SpellCheck for Dynamics GP

Display PostScript System

HYCU SCOM Management Pack for F5 BIG-IP

AvePoint Privacy Impact Assessment 1 Release Notes

Technical Report. Anisotropic Lighting using HLSL

Milestone_TCIT Match Software

ML605 Restoring Flash Contents

Intel Setup and Configuration Service Lite

CUDA TOOLKIT 3.2 READINESS FOR CUDA APPLICATIONS

Application Note. NVIDIA Business Platform System Builder Certification Guide. September 2005 DA _v01

NSIGHT ECLIPSE PLUGINS INSTALLATION GUIDE

ADOBE EXPERIENCE MANAGER DAM CONNECTOR FOR ADOBE DRIVE CC: TECHNICAL NOTE

Upgrading BankLink Books

Histogram calculation in OpenCL. Victor Podlozhnyuk

CA Desktop Migration Manager

Terms of Use. Changes. General Use.

VCU108 Built In Test July 2015

Server Installation Guide

Tuning CUDA Applications for Fermi. Version 1.2

Enthusiast System Architecture Certification Feature Requirements

SDK White Paper. Matrix Palette Skinning An Example

HP SmartStream Designer 22 For Adobe Illustrator

HP DesignJet 3500CP Printing Guide for Windows

voptimizer Pro Version What s New

Microsoft Dynamics GP. Inventory Kardex

Utility Reduced Logic (v1.00a)

GRID SOFTWARE FOR RED HAT ENTERPRISE LINUX WITH KVM VERSION /370.28

Creating Your User Account. LANDESK Self-Service Support Portal

Utility Bus Split (v1.00a)

Tisio CE Release Notes

TouchPad Interfacing Guide Addendum: Multiple-Button Support Specification

IBM StoredIQ Platform Version Overview Guide GC

x10data Application Platform v7.1 Installation Guide

Encoder Core. API Specification. Revision: SOC Technologies Inc.

How to Use These Tutorials Adobe Acrobat Tour Creating a Presentation Capturing and Cataloging About the Acrobat Tutorials

SPEED2000 TDR/TDT Simulation Tutorial. Product Version 16.6 December 2012

UNIBOX. An Intelligent Network Controller. Knowledge Base: Billing Module

AvePoint SearchAll for Microsoft Dynamics CRM. Release Notes

Unlocking & Upgrading Notes. Metering software plugin

SPARC/MEM-20 Installation Guide

User Guide. GLExpert NVIDIA Performance Toolkit

IBM. Networking INETD. IBM i. Version 7.2

System Specification Version 3.31 MMCA Technical Committee

SolarWinds Technical Reference

Conversion SDK v11 32-bit and 64-bit

MAXWELL COMPATIBILITY GUIDE FOR CUDA APPLICATIONS

SDK White Paper. Occlusion Query Checking for Hidden Pixels

GLExpert NVIDIA Performance Toolkit

Microsoft Dynamics GP. Purchase Vouchers

User s Manual for H4S & NetPoint 2.2

SUNDE. User s Manual for NetPoint2.2 & H4S USER MANUAL FOR NETPOINT2.2 AND H4S 1

RMA PROCESS. vr384 October RMA Process

Installing Watson Content Analytics 3.5 Fix Pack 1 on WebSphere Application Server Network Deployment 8.5.5

AVR42789: Writing to Flash on the New tinyavr Platform Using Assembly

Aimetis Android Mobile Application. 2.x Release Notes

HUAWEI H30-U10. Quick Start Guide

HP SmartStream Designer 21 For Adobe Illustrator

Intel Education Theft Deterrent Release Note WW16'14. August 2014

AT60142H/HT. Rad-Hard 512Kx8 Very Low Power CMOS SRAM ERRATA-SHEET. Active Errata List. Errata History. Abbreviations. 1.

TLBs, Paging-Structure Caches, and Their Invalidation

MARADIN 2D MEMS PROJECTION EVALUATION KIT PN DM003100

Intel Platform Administration Technology Quick Start Guide

DataFlash and Serial Flash BGA Package. Design Note. DataFlash and Serial Flash BGA Package. Introduction

ReadMeFirst for IBM StoredIQ

User Guide. Vertex Texture Fetch Water

BRM Accelerator Release Notes - On Premise. Service Pack

Specification for Threading, Gauging and Thread Inspection of Casing, Tubing, and Line Pipe Threads

Enhanced Serial Peripheral Interface (espi) ECN

Project management - integrated into Outlook

Transcription:

Level 2 Compatibility: The setscreen and currentscreen Operators Adobe Developer Support Technical Note #5119 31 March 1992 Adobe Systems Incorporated Adobe Developer Technologies 345 Park Avenue San Jose, CA 95110 http://partners.adobe.com/ PN LPS5119

Copyright 1991 1992 by Adobe Systems Incorporated. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written consent of the publisher. Any software referred to herein is furnished under license and may only be used or copied in accordance with the terms of such license. PostScript, the PostScript logo, Display PostScript, and the Adobe logo are trademarks of Adobe Systems Incorporated which may be registered in certain jurisdictions. Other brand or product names are the trademarks or registered trademarks of their respective holders. This publication and the information herein is furnished AS IS, is subject to change without notice, and should not be construed as a commitment by Adobe Systems Incorporated. Adobe Systems Incorporated assumes no responsibility or liability for any errors or inaccuracies, makes no warranty of any kind (express, implied or statutory) with respect to this publication, and expressly disclaims any and all warranties of merchantability, fitness for particular purposes and noninfringement of third party rights.

Contents Level 2 Compatibility: The setscreen and currentscreen Operators 5 1 Introduction 5 2 Operator Behavior 5 Level 1 Behavior 5 Level 2 Behavior 6 3 Compatibility Implications 7 Appendix: Changes Since Earlier Versions 9 iii

iv Contents (31 Mar 92)

Level 2 Compatibility: The setscreen and currentscreen Operators 1 Introduction With the introduction of PostScript Level 2, control over halftoning in the PostScript interpreter has been greatly improved. Because of this, the currentscreen and setscreen operators have been extended to accept two sets of parameters. This technical note documents a modification made to the behavior of currentscreen and setscreen, which was changed to increase the backward compatibility of Level 2. This document corrects early versions of the PostScript Language Reference Manual, Second Edition, and addresses possible compatibility conflicts between Level 1 and Level 2. 2 Operator Behavior The setscreen and currentscreen operators behave differently in Level 1 and Level 2 implementations due to the expanded functionality in Level 2. 2.1 Level 1 Behavior Halftoning in Level 1 interpreters is controlled by using the setscreen operator, which allows an application to specify a halftone screen by passing the following parameters: frequency angle proc Similarly, the currentscreen operator queries the current screen and returns frequency angle proc on the stack. In both cases, the proc is a PostScript language procedure responsible for determining the order in which pixels in a halftone cell are turned on. (Refer to section 6.4, Halftones, in the PostScript Language Reference Manual, Second Edition.) 5

2.2 Level 2 Behavior The concept of a halftone dictionary was introduced in Display PostScript systems to support greater language-level control over halftoning. This functionality is also a standard in PostScript Level 2. A halftone dictionary is a dictionary object whose entries are parameters to the halftoning machinery. When the PostScript interpreter starts, a current halftone dictionary exists, much like a current screen in Level 1 interpreters. Halftone dictionaries can be passed to the sethalftone operator, which reads the relevant keys and sets up the halftone screen appropriately. There are several halftone dictionary types that are specified with the required HalftoneType key. A dictionary of halftone type 1 consists of required entries similar to the values passed to the setscreen operator in PostScript Level 1, but this dictionary may also contain several optional entries that provide greater control over the halftone screen. Although it is possible to use setscreen to set up a screen based on a halftone dictionary, it is preferable to use sethalftone. (See section 3, Compatibility Implications. ) PostScript Level 2 extends the functionality of the currentscreen and setscreen operators to provide compatibility with the existing base of PostScript language code, while taking into account that the current halftone might be a dictionary rather than a spot function. In PostScript Level 2 the current halftone can be defined either as a spot function or as a halftone dictionary. If it is a spot function, the currentscreen operator will behave the same way it would in Level 1, returning frequency angle proc on the operand stack. However, if the current halftone is a dictionary of type HalftoneType 1, rather than a screen, the currentscreen will return frequency angle halftonedict where frequency and angle are the values of Frequency and Angle extracted from the halftone dictionary. If the current halftone is a dictionary other than HalftoneType 1, currentscreen will return 60 0 halftonedict where 60 and 0 are meaningless constants provided for language compatibility with existing PostScript language files. In similar fashion, the setscreen operator will accept both the Level 1 form for halftones frequency angle proc 6 Level 2 Compatibility: The setscreen and currentscreen Operators (31 Mar 92)

and the Level 2 form num1 num2 halftonedict If a halftone dictionary of type 1 is passed as the halftonedict, setscreen will interpret the arguments as frequency angle halftonedict frequency and angle will be copied into the halftone dictionary as Frequency and Angle. These values will override the Frequency and Angle keys in the halftone dictionary. If the dictionary is read-only, setscreen makes a copy of it before copying the values. If the halftone dictionary is a type other than 1, frequency and angle are ignored. Some versions of the PostScript Language Reference Manual, Second Edition state that the frequency and angle parameters returned by currentscreen are always 60 and 0 in the case where the current halftone is a dictionary. However, this is true only if the halftone dictionary is not type 1. Similarly, the manual states that setscreen always ignores the frequency and angle values passed on the stack if the halftone is a dictionary. Again, this is only true if the dictionary is not a type 1 halftone dictionary. Note The behavior described above is different from that described in some versions of the PostScript Language Reference Manual, Second Edition. 3 Compatibility Implications The ability to pass a halftone dictionary to the setscreen operator is provided for compatibility with existing PostScript language programs that execute currentscreen, save the results, and later execute setscreen to restore the old screen. It is preferable to use the sethalftone operator when explicitly setting a halftone dictionary as the current screen because it is more clear and because of the behavior described in the previous section. Although the behavior of setscreen and currentscreen will be correct for most existing PostScript language files, there still remains a compatibility problem. In the case where the current halftone is not a type 1 dictionary, the setscreen and currentscreen operators behave as described in the PostScript Language Reference Manual, Second Edition, that is, currentscreen will return the meaningless constants 60 and 0, and setscreen will ignore the first two values passed to it. Since the effect of the setscreen and currentscreen operators are device-dependent, the effect of returning or setting halftones with these constants is at least no worse than using these operators in the first place. 3 Compatibility Implications 7

8 Level 2 Compatibility: The setscreen and currentscreen Operators (31 Mar 92)

Appendix: Changes Since Earlier Versions Changes since August 8, 1991 version Document was reformatted in the new document layout and minor editorial changes were made. 9

10 Appendix: Changes Since Earlier Versions (31 Mar 92)