GitXplorerGitXplorer
j

iosurface-example

public
13 stars
2 forks
2 issues

Commits

List of commits on branch master.
Unverified
260feee70acbba472b151ccddf9a672ace2364bf

Viewer works in Retina mode

jjryans committed 9 years ago
Unverified
aebb261de486fec087fad23d57b874d9e97d921b

Pattern working at Retina scale

jjryans committed 9 years ago
Unverified
94f5a7ed620863330e498345da3292a99db4841f

Add pattern testing project

jjryans committed 9 years ago
Unverified
eacf0ae8bd0044266e5b356a58ff9bf6ed7c6fa7

Remove more non-Gecko stuff

jjryans committed 9 years ago
Unverified
bc4332c28f4394d39e00658f611d49f5dc89856c

Ignore xcuserdata

jjryans committed 9 years ago
Unverified
888cc499728b722b9f3c6f3f7460d5325d563c05

Only render if the surface seed changes

jjryans committed 9 years ago

README

The README file for this repository.

MultiGPUIOSurface

================================================================================ DESCRIPTION:

MutiGPUIOSurface shows how to create IOSurfaces and bind them to OpenGL textures for both reading and writing. It demonstrates one way of passing IOSurfaces from one process to another via Mach RPC calls. It also demonstrates the system's ability to track IOSurface changes across process and GPU boundaries.

To test, after building the integrated target "MultiGPUApps", first run the server application "MultiGPUServer" and then the client application "MultiGPUClient".

================================================================================ BUILD REQUIREMENTS:

OS X 10.9 or later, Xcode 5.1 or later

================================================================================ RUNTIME REQUIREMENTS:

OS X 10.7 or later

================================================================================ PACKAGING LIST:

ClientController.h ClientController.m This class implements the controller object for the client application. It is responsible for looking up the server application, and responding to frame rendering requests from the server.

ClientOpenGLView.h ClientOpenGLView.m This class implements the client specific subclass of NSOpenGLView. It handles the client side rendering, which calls into the GLUT-based BluePony rendering code, substituting the contents of an IOSurface from the server application instead of the OpenGL logo.

It also shows how to bind IOSurface objects to OpenGL textures.

ServerController.h ServerController.m This class implements the controller object for the server application. It is responsible for setting up public Mach port for the server and listening for client applications to start up. It also sends frame display update requests to all clients after every frame update.

It is also responsible for creating the initial set of IOSurfaces used to send rendered frames to the client applications.

ServerOpenGLView.h ServerOpenGLView.m This class implements the server specific subclass of NSOpenGLView. It handles the server side rendering, which calls into the GLUT-based Atlantis rendering code to draw into an IOSurface using an FBO. It also performs local rendering of each frame for display purposes.

It also shows how to bind IOSurface objects to OpenGL textures, and how to use those for rendering with FBOs.

================================================================================ CHANGES FROM PREVIOUS VERSIONS:

Version 1.2

  • Updated with Core Profile. Cleaned up code. Removed deprecated calls.

Version 1.1

  • First public release.

================================================================================ Copyright (C) 2010~2014 Apple Inc. All rights reserved.