Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
22 changes: 22 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
.DS_Store

# Common C/C++ build artifacts
*.o
*.obj
*.a
*.lib
*.so
*.dylib
*.dll
*.exe
*.out

# CMake
CMakeFiles/
CMakeCache.txt
cmake_install.cmake
compile_commands.json

# Common build folders
build/
bin/
3,728 changes: 3,728 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

20 changes: 20 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# openFrameworks Code of Conduct

One of the goals of openFrameworks is to be inclusive to the largest number of contributors, with the most varied and diverse backgrounds possible. As such, we are committed to providing a friendly, safe and welcoming environment for all, regardless of gender, sexual orientation, ability, socioeconomic status, age, level of experience, personal appearance, ethnicity, religion or philosophy.

As the openFrameworks community, we pledge to respect both old and new members who post on the forum, chat on IRC, post on mailing lists, report issues, post feature requests, submit pull requests or patches, update documentation, participate in meetups and workshops, or are involved in any way with openFrameworks.

Examples of unacceptable behavior include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, exclusion, or other disrespectful conduct. We promise each other to:

* Participate in an authentic and active way. In doing so, we contribute to the health and longevity of this community.
* Exercise consideration and respect in our speech and actions.
* Attempt collaboration before conflict.
* Be mindful of other community members.

Alert [the core](mailto:of@openframeworks.cc) if you notice a dangerous situation, someone in distress, or violations of this Code of Conduct, even if they seem inconsequential. We'll treat reports as anonymous submissions, and do our best to work with everyone in private to resolve the conflict.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Contributors who do not follow the Code of Conduct will be removed from the project team.

This code of conduct applies both within project spaces and in public spaces when an individual is representing the openFrameworks community.

_This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org) and the [Berlin Code of Conduct](http://berlincodeofconduct.org/)_
55 changes: 55 additions & 0 deletions INSTALL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
[openFrameworks](http://openframeworks.cc/) | [Documentation table of contents](table_of_contents.md)

OS X
====
To use openFrameworks with OS X, you need to have Xcode installed. Then you can run the examples in apps/ by opening the .xcodeproj and clicking the "Build and Run" button.


Installing Xcode
----------------
openFrameworks is primarily developed with Xcode 4+, but may work with other versions.

To install Xcode, you need to register as an Apple developer and download the Xcode disk image from: https://developer.apple.com/xcode/downloads/

More detailed instructions are available at:
http://openframeworks.cc/setup/xcode


Creating a new openFrameworks project
-------------------------------------
The easiest way to create a new openFrameworks project is to use the project generator:

See [projectGenerator page](projectgenerator.md), to understand the usage of this tool.

The second easiest way is to copy one that's similar to what you want to do.

OF Examples follow the app directory structure pattern (e.g. apps/categoryName/appName) and are grouped by topic/addon.

For example:

- Copy an example folder like: examples/empty/emptyExample/ and rename the copy to apps/examples/myApp/

- Inside the myApp/ folder rename the .xcodeproj file to myApp.xcodeproj

- Open myApp.xcodeproj

- In the sidebar, under "Targets", right click on "emptyExample" and rename it to "myApp"


The difference between Debug and Release mode
---------------------------------------------
These are two build configurations, "Debug" and "Release".

Debug is useful when developing your project, as it will provide the most information about where and why something crashed.

Release is useful when you're done developing your project. Release will create a smaller, faster app -- but it won't give you much information if it crashes.


openFrameworks resources
------------------------
If you have questions or issues, the best place to look is the openFrameworks forum:
http://forum.openframeworks.cc/


Thanks for reading this and enjoy!
- The OF Team
145 changes: 145 additions & 0 deletions INSTALL_FROM_GITHUB.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# How to compile openFrameworks from github

Follow these instructions only if you want to submit a pull request or if you want to always use the most recent version of openFrameworks. In other cases you will not need to clone the entire openFrameworks repository.

If you are a developer, or if you want to submit a pull request, [read this first](https://github.com/openframeworks/openFrameworks/blob/master/README.md#developers)

### Clone the master branch

Let's start by cloning the last `master` branch of openFrameworks and its submodules.

```bash
git clone --recursive git@github.com:openframeworks/openFrameworks.git
```

_Before continuing make sure your new openFrameworks path **has no spaces**. Many of the shell scripts below will fail on paths that include spaces._

### Download dependencies

As the external dependencies are not found in the repository, you need to download them. To make things simpler, use the bash script called `download_libs.sh` which can be found in the `scripts` folder. In this folder, there are several subfolders, one for each platform. Assuming you are, for example, using OSX, you need to run `/bin/bash scripts/osx/download_libs.sh`.

### Get the Project Generator

Now that you have all the required files, you need to compile them and set up all the projects contained in the `examples` folder. The easiest way to do this is by using the Project Generator to compile all the examples.
The Project Generator app facilitates creating new openFrameworks projects and adding or removing addons to existing projects. As it is a separate project with a well defined scope, the openFrameworks developers decided to put it into its own repository. You can get the project generator in two different ways:
* Initialize and update all the git submodules (including the Project Generator) by first running `git submodule init` and then `git submodule update`.
* Or, easier, download an already packaged openFrameworks installation from the [download page](http://openframeworks.cc/download/), and copy the `projectGenerator` folder into your openFrameworks installation.

As the first option can lead to [unexpected results](https://forum.openframeworks.cc/t/how-to-build-project-generator-from-of-git-repo/26232), we suggest you use the second approach.

### Compile all the examples

Now that you have the Project Generator, you are ready to compile all the examples:

#### Option 1 - With the Project Generator app
* Start the Project Generator application by double clicking on it.
* Hit the cog wheel on the right side of the Project Generator window and select `advanced options`.
* Select the `update multiple` tab, enter the path to the examples folder inside the current OpenFrameworks repo folder.
* Make sure to select your platform in the platforms field below.
* Click on `update multiple` and wait. This operation can take a while depending on your hardware.

Once the success message appears you are done.

#### Option 2 - With the command line Project Generator
* from the OF root directory, run `projectGenerator -r -o"." examples`



# How to update openFrameworks from github

It's likely that at some point you will want to update your local openFrameworks to include new changes available in github. To update openFrameworks, we first need to figure out if you have several remotes already configured. Run

git remote -v

And study the output. It may look something like this:

```
origin git@github.com:your-user-name/openFrameworks.git (fetch)
origin git@github.com:your-user-name/openFrameworks.git (push)
upstream https://github.com/openframeworks/openFrameworks.git (fetch)
upstream https://github.com/openframeworks/openFrameworks.git (push)
```

This means that there are two remotes:
- the first two lines point at your own fork in github
- the next two lines point at the official openFrameworks repository

It is possible that you only have one or the other. If you are missing the official remote you can add it like this:

git remote add upstream git@github.com:openframeworks/openFrameworks.git

Note that `upstream` is a name you choose, and it's how you will refer to the official openframeworks repository. Use that same name in the following command to update your local copy of openFrameworks:

git pull upstream master

### Update the submodules

The openFrameworks git repository has submodules (so far the Project Generator). The submodules rarely change, but if they did, you can update them too. If you never downloaded the submodules, do it now:

git submodule update --init --recursive

If you did already download them, this is how you update them:

git submodule update --recursive

### Try if everything worked

Once all changes are downloaded try to compile a program. It if fails it is possible that the dependecies are out of date. In that case please repeat the step **Download dependencies** found above.

Finally, if your setup depends on some of the scripts from the scripts folder, you may need to re-run them. For instance, if you use Qt Creator and have trouble creating new OF projects you may want to run `scripts/qtcreator/install_template.sh` again.

### Note: master vs patch-release branches

After an openFrameworks release, bug fixes will be eventually added to the `patch-release` branch while new features will land in the `master` branch instead.

If you need the recent bug fixes, run `git branch` to see if `patch-release` is already in your system.

A. If it's not, get that branch:

```
$ git fetch origin patch-release
$ git checkout -b patch-release
```

B. If it's already there, switch to it:

```
$ git checkout patch-release
```

Finally run
```
$ git pull
```
to download those bug fixes to your local `patch-release` branch, then try compile your program and see if the bug that was troubling you is now gone.

# How to submit your pull requests

If you plan to submit pull requests to openFrameworks, the procedure is almost identical to what we described above, with one little difference: you should clone your own fork of openFrameworks:

### A. Fork and clone openFrameworks

* Visit https://github.com/openframeworks/openFrameworks and click Fork to create your own copy of the project.
* Clone your newly created repository:

```bash
git clone --recursive git@github.com:YOUR-USER-NAME/openFrameworks.git
```

Replace YOUR-USER-NAME with your GitHub user name in the previous command.

* Add the external dependencies and the project generator as explained in the top section.
* Follow the Next steps below.

### B. If you cloned openFrameworks without forking

If you followed the top section of this document and cloned openFrameworks from `git@github.com:openframeworks/openFrameworks.git`, downloaded the dependencies and compiled the examples and then decided you want to submit a pull request, you don't need to start from scratch. You only need to fork openFrameworks, and then point your local repository to your new fork:

* Visit https://github.com/openframeworks/openFrameworks and click Fork to create your own copy of the project.
* Edit the `.git/config` file inside your local openFrameworks folder and update the `url` line so it points to your own fork. Do this by substituting `openframeworks/openFrameworks.git` by `YOUR-USER-NAME/openFrameworks.git` (where YOUR-USER-NAME is your GitHub user name).

### Next steps

[This help page](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) by GitHub explains the pull request process. Please read it before starting.

In the openFrameworks repository you can find instructions about [how to contribute](https://github.com/openframeworks/openFrameworks/blob/master/CONTRIBUTING.md).
22 changes: 22 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
**openFrameworks** is distributed under the [MIT License](https://en.wikipedia.org/wiki/MIT_License). This gives everyone the freedoms to use openFrameworks in any context: commercial or non-commercial, public or private, open or closed source.

---

Copyright (c) 2004 - openFrameworks Community

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

---

openFrameworks also ships with a mix of the following [libraries](docs/libraries.md), depending on your platform, which may have different licenses.

* [OpenGL](http://www.opengl.org/), [GLEW](http://glew.sourceforge.net/), [GLUT](http://www.opengl.org/resources/libraries/glut/), [libtess2](https://code.google.com/p/libtess2/) and [cairo](http://cairographics.org/) for graphics
* [rtAudio](http://www.music.mcgill.ca/~gary/rtaudio/), [PortAudio](http://www.portaudio.com/) or [FMOD](http://www.fmod.org/) and [Kiss FFT](http://kissfft.sourceforge.net/) for audio input, output and analysis
* [FreeType](http://freetype.sourceforge.net/index2.html) for fonts
* [FreeImage](http://freeimage.sourceforge.net/) for image saving and loading
* [Quicktime](http://developer.apple.com/quicktime/), [Unicap](http://unicap-imaging.org/), [GStreamer](http://gstreamer.freedesktop.org/) and [videoInput](https://github.com/ofTheo/videoInput) for video playback and grabbing
* [Poco](http://pocoproject.org/) for a variety of utilities
Loading