Code Monkey home page Code Monkey logo

ofxmsaopencl's Introduction

ofxMSAOpenCL

Introduction

C++ openFrameworks addon for very simple to use wrapper for OpenCL. All underlying openCL objects are accessible to allow advanced features too if need be. Demo (1M particles @ 100-200 fps) at vimeo.com/7332496

Licence

The code in this repository is available under the MIT License.
Copyright (c) 2008-2012 Memo Akten, www.memo.tv
The Mega Super Awesome Visuals Company

Some Windows & OpenGL / interop specific additions (c) tgfrerer, placed under MIT license.

Installation

Copy to your openFrameworks/addons folder.

I've had some problems on 10.8 with OpenCL. I've had to install these drivers www.nvidia.com/object/cuda-mac-driver.html for my graphics card to work.

Windows / VS 2012

On Windows using Visual Studio, make sure to point your compiler to the right location of the OpenCL headers. You'll find an example .props property file in libs/OpenCL/lib/vs/ - this file should work for the latest Windows CUDA/OpenCL Nvidia SDK. You can add it to your project by clicking "Add Existing Property Sheet" in the vs2012 Property Manager window. If it doesn't work, inspect it using a text editor and make sure the path to the OpenCL headers is correct for your development system.

Dependencies

Windows / NVidia

Examples

Some examples also require [ofxMSATimer]{https://github.com/memo/ofxMSATimer}

Compatibility

openFrameworks 0.8+
I am generally testing only with openFrameworks, however it should work with Cinder too. If it doesn't, please file an issue.

Known issues

none

Version history

v2.3

  • additions for safe OpenGL/OpenCL interop on windows and OS X
  • reliable detection of platforms and devices on windows, OS X
  • MSAOpenCLBufferManagedT to be compatible with GL interop elements (see particle example)

v2.2

  • MSAOpenCLBufferManagedT: Memory Object High level wrapper, allocates and manages host and client memory objects

v2.1 23/09/2012

  • compatible with OF0072
  • renamed (uppercase) MSA namespace to (lowercase) msa. (kept MSA as an alias for backwards compatibility)
  • no longer requires MSACore

v2.0

  • move to centralized MSALibs (requires MSACore)
  • everything is MSA:: namespace

v0.3

  • added image support
  • restructured buffer/memory management
  • minor break in backwards compatability: createBuffer returns ofxOpenCLBuffer instead of cl_mem. so
    • writeBuffer and readBuffer are methods of ofxOpenCLBuffer, not ofxOpenCL
    • when passing buffer (or image) as parameter to ofxOpenCLKernel::setArg, use ofxOpenCLBuffer::getMemoryObject() (which returns the cl_mem)

v0.2

  • added support for multiple devices
  • sharing context with opengl (only on mac osx at the moment)
  • better handling of multi-dimensional data (minor backwards compatability break with kernel::run)
  • support for opengl/opencl buffer+texture sharing
  • can load programs from binary (support for creating binary coming soon)

v0.1

  • initial version

ofxmsaopencl's People

Contributors

elliotwoods avatar lopho avatar memo avatar prisonerjohn avatar soylentgraham avatar tgfrerer avatar underdoeg avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.