did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780321356529

OpenGL Programming on Mac OS X : Architecture, Performance, and Integration

by ;
  • ISBN13:

    9780321356529

  • ISBN10:

    0321356527

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2007-12-17
  • Publisher: Addison-Wesley Professional
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $54.99 Save up to $5.50
  • Digital
    $49.49
    Add to Cart

    DURATION
    PRICE

Supplemental Materials

What is included with this book?

Summary

The Mac has fully embraced OpenGL throughout its visual systems. In fact, Apple's highly efficient, modern OpenGL implementation makes Mac OS X one of today's best platforms for OpenGL development.OpenGL Programming on Mac OS Xis the first comprehensive resource for every graphics programmer who wants to create, port, or optimize OpenGL applications for this high-volume platform. Leading OpenGL experts Robert Kuehne and J. D. Sullivan thoroughly explain the Mac's diverse OpenGL APIs, both old and new. They illuminate crucial OpenGL setup, configuration, and performance issues that are unique to the Mac platform. Next, they offer practical, start-to-finish guidance for integrating key Mac-native APIs with OpenGL, and leveraging the full power of the Mac platform in your graphics applications. Coverage includes A thorough review of Mac hardware and software architectures and their performance implications In-depth, expert guidance for accessing OpenGL from each of the Mac's core APIs: CGL, AGL, and Cocoa Interoperating with other Mac APIs: incorporating video with QuickTime, performing image effects with Core Image, and processing CoreVideo data Analyzing Mac OpenGL application performance, resolving bottlenecks, and leveraging optimizations only available on the Mac Detecting, integrating, and using OpenGL extensions An accompanying Web site ( www.macopenglbook.com ) contains the book's example code, plus additional OpenGL-related resources. OpenGL Programming on Mac OS Xwill be valuable to Mac programmers seeking to leverage OpenGL's power, OpenGL developers porting their applications to the Mac platform, and cross-platform graphics developers who want to take advantage of the Mac platform's uniquely intuitive style and efficiency.

Author Biography

Robert P. Kuehne leads Blue Newt Software, a consultancy that specializes in helping clients enhance their 3D graphics applications. Formerly Technical Lead for Silicon Graphics' OpenGL Shading Language, Kuehne has been involved with OpenGL since it was created, in roles ranging from programmer to shader compiler developer to SIGGRAPH presenter. He has also been a Macintosh developer since the early 1990s.

J. D. Sullivan is an OpenGL driver engineer who has been writing graphics software professionally for more than fifteen years. While at Silicon Graphics, Inc., he was one of the original designers and implementers of the Volumizer API and later worked as part of the OpenGL software team focused on the Cobalt and Krypton graphics chipsets. Since SGI, Sullivan has worked on the Mac as his primary development platform, and he serves on the OpenGL Architecture Review Board.

Table of Contents

List of Figuresp. xv
List of Tablesp. xix
List of Examplesp. xxi
Prefacep. xxv
Acknowledgmentsp. xxix
About the Authorsp. xxxi
Mac OpenGL
Introductionp. 1
Why the Mac?p. 2
Why OpenGL?p. 3
The Bookp. 4
OpenGL
Architecture on OS Xp. 7
Overviewp. 7
About OpenGLp. 7
OpenGL Feature Supportp. 14
API Layersp. 15
The Mac OS OpenGL Plug-In Architecturep. 17
Renderersp. 18
Summaryp. 21
Mac Hardware Architecturep. 23
Overviewp. 23
Data Flow and Limitationsp. 24
Summaryp. 32
Application Programming on OS Xp. 33
Overviewp. 33
Mac OS X Versionsp. 33
System Configurationp. 34
Power Managementp. 34
Filesystemp. 38
Finding, Verifying, and Filing Bugsp. 39
Threadingp. 41
Data Parallel Computation: SIMDp. 42
OpenGL
Configuration and Integrationp. 45
API Introductions and Overviewp. 46
Configuration API Relationshipsp. 49
The CGL API for OpenGL
Configurationp. 55
Overviewp. 55
Error Handlingp. 57
Pixel Format Selectionp. 57
Context Managementp. 63
Drawablesp. 77
Using CGL Macrosp. 86
Summaryp. 86
The AGL API for OpenGL
Configurationp. 89
Overviewp. 89
Software Layeringp. 90
Pixel Format and Contextp. 91
Additional Topicsp. 104
Alternative Rendering Destinationsp. 109
Summaryp. 120
The Cocoa API for OpenGL
Configurationp. 121
Overviewp. 122
NSOpenGLViewp. 122
NSViewp. 133
Additional Topicsp. 140
Alternative Rendering Destinationsp. 152
Summaryp. 162
The GLUT API for OpenGL
Configurationp. 163
Overviewp. 164
Configuration and Setupp. 165
Summaryp. 171
API Interoperabilityp. 173
Overviewp. 173
Cocoa Image: NSImagep. 174
QuickTimep. 184
Summaryp. 193
Performancep. 195
Overviewp. 195
Axioms for Designing High-Performance OpenGL Applicationsp. 196
OpenGL for Mac OS X Rules of Thumb for Performancep. 201
Metricsp. 207
Efficient Data Management Using Mac OpenGLp. 209
Efficient Handling of Vertex Datap. 210
Efficient Handling of Texture Datap. 221
Texturesp. 225
Shadersp. 226
Toolsp. 226
Graphics Toolsp. 228
Putting It All Togetherp. 237
Summaryp. 243
Mac Platform Compatibilityp. 245
Mac OS Versionsp. 245
OpenGL Platform Identificationp. 248
Mac OS Version Identificationp. 249
Summaryp. 251
OpenGL Extensionsp. 253
Overviewp. 253
Extension Design and API Integrationp. 254
Extension Styles and Typesp. 256
Identification, Selection, Query, and Usagep. 257
Utilization and Bindingp. 262
Extension Management Librariesp. 269
Summaryp. 275
X11 APIs for OpenGL Configurationp. 277
Installationp. 277
Building X11 Applications on OS Xp. 278
X11 Color Modelsp. 279
Glossaryp. 281
The Cocoa API for OpenGL Configuration in Leopard, Mac OS X 10.5p. 283
Overviewp. 284
NSOpenGL Viewp. 284
NSViewp. 294
Additional Topicsp. 300
Alternative Rendering Destinationsp. 312
Summaryp. 322
Bibliographyp. 323
Indexp. 325
Table of Contents provided by Publisher. All Rights Reserved.

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Excerpts

The Mac is a computing platform that virtually defines ease of use, consistency, and effortless computing. The story of OpenGL on the Mac has been, shall we say, a bit more complex. With the arrival of OS X, the Mac platform supports even more ways of constructing OpenGL applications for the Mac. While there has been an apparent proliferation of OpenGL interfaces for the Mac, the platform itself has stabilized architecturally and programmatically and now offers the best developer and user experience in the industry for development of graphics applications. This is not just a statement of preference but an observation that, in many ways, the Mac is an OpenGL platform without peer. The Mac is a fun and efficient platform on which to develop applications, thanks to the set of OpenGL drivers at its core that support a rich and deep feature set, great performance, and deep integration in OS X. The Mac has excellent and usable tools for quickly monitoring OpenGL behavior, rapidly prototyping shaders, and digging deep to analyze OpenGL behavior in the application and driver. The Mac makes OpenGL development efficient and fun. Although the development tools and environment are powerful and helpful, many corners of OpenGL on the Mac remain under-documented. A developer must choose among several development languages, user interface (UI) toolkits, window managers, and additional Mac APIs such as QuickTime and Core Image, yet still ensure that his or her software runs well on a variety of target Mac platforms. All of these factors can make using OpenGL on the Mac a challenging task even for developers who have been writing OpenGL applications on other platforms for years. This book was put together with an eye toward simplifying and clarifying the ways in which OpenGL can be used on the Mac. It is our hope that by codifying all the information available about OpenGL on the Mac in one place and by presenting each interface with clarity and depth, developers will have a one stop reference for all things OpenGL on the Mac. Who Should Read This Book? This book is intended for OpenGL programmers who wish to develop applications on Mac OS X. We target two categories of OpenGL programmers: those who are new to OpenGL on the Mac and those who want to explore the specific benefits of writing OpenGL programs on the Mac. For those who are new to OpenGL on the Mac--either existing Mac developers or those coming from other platforms--we provide advice on cross-platform issues, portable interfaces, and ideas about choosing native interfaces for the Mac. Existing Mac developers will find a single-source reference guide to all OpenGL interfaces on the Mac. For developers wishing to explore the power and richness of the Mac, we provide complete details on Mac-specific OpenGL extensions and ways of integrating other Mac APIs (such as QuickTime and Core Image) into applications. Organization This text is intended to be useful as both a programming guide and a reference manual. The text contains several chapters focused on OpenGL on the Mac and other chapters that cover related graphics information. A few appendices are included to cover supplemental information in detail. The chapters are organized as follows: Architecture Chapters 1 through 4 describe the hardware and software architectures of the Mac. This part of the book also presents an introduction to performance considerations as they relate to architecture. Configuration and Integration Chapter 5 explores the interfaces to OpenGL on the Mac in detail. Those new to OpenGL on the Mac should begin here. CGL, AGL, Cocoa, GLUT Chapters 6 through 9 explore details behind the individual APIs. Each API is covered in detail in its own chapter, and the APIs are compared and contrasted in each chapter. These chapters form the core of this book. Interoperability Chapter 10 collects a variety of interesting OpenGL an

Rewards Program