projectM-visualizer / projectM-visualizer/projectm
[FEATURE] Make it possible to select between GL Core and GL ES APIs at instance creation
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 4.5k
- Forks
- 485
- Avg merge
- 3d 7h
- Merged PRs (30d)
- 5
Description
Please confirm the following points:
- This feature request is NOT for the Android apps in the Play Store
- I have searched the project page to check if a similar request was already made
Application or Project
libprojectM (including the playlist library)
Is Your Enhancement Related to a Problem?
Currently, developers must decide to use either GL Core profile or the GL Embedded Standard at compile time, so an application that may need to use either one depending on the environment has to ship with two separate libraries.
Your Suggested Enhancement
Add a new API call that enables the application to choose a specific GL profile for the instance. Alternatively, projectM could try to determine the proper GL variant by querying the current context GL version. This is also necessary for the original projectm_create() method, which will be used by applications that have adopted projectM before version 4.2.
Alternative Solutions
Don't add any additional API functions, and only rely on context detection. Keeps the API slim, but removes some control from application, e.g. to prevent using the wrong GL variant in some edge cases.
Additional Context
No response
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the existing projectm_create() entry point and the compile-time selection between GL Core and GL ES APIs. Determine how an instance-level profile choice or context detection would preserve compatibility with applications using the older API. Done means the supported selection behavior and the handling of the original projectm_create() method are defined.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- api, computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100