Giter Club home page Giter Club logo

globjects's People

Contributors

carolinfiedler avatar cgcostume avatar dgimb89 avatar dlyr avatar dommueller avatar kateyy avatar lanice avatar mjendruk avatar niosus avatar nyran avatar pkarasev3 avatar riegl-gc avatar rlux avatar sarahkittyy avatar sbusch42 avatar scheibel avatar somae avatar yorrickslr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

globjects's Issues

type aliases or specializations for common object specializations

e.g.

additionally to

Buffer vertices(GL_ARRAY_BUFFER);
Buffer indices(GL_ELEMENT_ARRAY_BUFFER);

glow api should support

ArrayBuffer vertices;
ElementArrayBuffer indices;

The later is the correct api, since opengl uses different objects for each type, so glow should do so too. The default constructor with the enum should be only available to allow yet unsupported or unknown features of opengl, that glow has not just updated to ....

In some cases this means we should use type aliases (not typedefs), in other cases this could mean subclassing/specialization...

This probably applies to a lot of glow's/opengl's objects.

Provide various timer and time-based counter.

Support at least:

  • basic timer (as in cgsee pfop) for simple ms or ns resolution measurements
  • high-performance frequency counters / high-resolution performance counters more exact measurements
  • gpu counters

Support Binary Shaders

There might be occasions where storing the compiled binary shader might speed up the performance; e.g., when reloading a shader, which then is discarded because it didn't compile correctly, then the last working shader is reloaded and usually re-compiled. This could be skipped by storing and re-storing the binary shader.

Further more, glow should provide an interface to query the binary shader (e.g., for storing that to a binary shader file) for reuse on later program executions or product deployment.

see more: http://www.opengl.org/sdk/docs/man/xhtml/glShaderBinary.xml

Update Readme

Update extension versions

  • glew to 1.10

Remove link to glow-utils as it is now in glow

unified code style

VertexAttributeBinding still uses _members. There probably might be other classes too.

Automatic unbind

Before setting a Uniform on a glow::Program, the program needs to be bound. After setting the Uniform, the glow::Program gets unbound.

In some cases, this is undesired behavior.
Should this never happen (also on other classes) or should this behavior be configurable?

Refactor debug output handler

Allow arbitrary lambdas as debug handlers
(create a struct with all the parameters to simplify parameter passing)

Is Error class the correct place to handle debug output?

Add examples for various OpenGL features

done:

  • Context Creation
  • Event Handling
  • Screen-Aligned Quad Rendering (post processing)
  • Transform Feedback
  • Navigation example (that later uses the yet todo defautl view interpolation...)
  • Tessellation example
  • GPU-Particles
  • Bindless Textures (use uniform buffer objects instead of arrays for handles - if not, limited, e.g., to 512 handles)
  • order independent transparency example ๐Ÿ˜„
  • mipmaps for texturing (different colors for each level) and configurable access (based on adjacent texel distance)

todo:

  • Massive Line Segment Rasterizer (Compute Shader)
  • Massive Lighting
  • camera path recording example

all examples should use glowutils and glow functions when ever possible (e.g., use camera, screen aligned quad, etc..)

Fix fullscreen mode on windows and support on unix.

In windows, fullscreen mode stops rendering (i think this worked before starting on x window/glx port). In unix there is currently no fullscree mode, which should be added.

The keybinding should be [F11] and [Alt]+[Return] for going fullscreen on all platforms.

Further, if fullscreen toggle should use current desktop resolution. Provide another method with width and height arguments that fullscreens to the nearest available resolution. So by default, no screen settings are changed on fullscreen toggle.

Create wiki page (project page)

  • what's all about
  • build instructions (minimal build)
  • lite examples / quick starts
  • global stuff (errors, logging, bindings, ...)

AbstractArray is subclass of Referenced

Why is AbstractArray a subclass of Referenced?

The only subclass so far is Array, which is also a subclass of std::vector.
Currently, each use of Array work on stack-allocated memory and not on heap-allocated memory and I don't think somebody ever want an Array to be storable into a ref_ptr.

Proposed solution: Remove the superclass Referenced?

Provide own gl context

... instead of depending on one being created by another library.

The important functions are

Windows:

  • wglCreateContext()
  • wglMakeCurrent()

Linux:

  • glXCreateContext()
  • glXMakeCurrent()

Mac:

  • CGLCreateContext
  • CGLSetCurrentContext

Move glDrawArrays and glDrawElements

glDrawArrays and glDrawElements is encapsulated on Buffer despite the buffer instance have no effect on the triggered render pipeline.

What will be a more meaningful place?

Track Memory Footprints of GPU Allocations

Every class that encapsulates an object that requires GPU memory (textures, fbos, vaos, vbo, ...) should track their memory usage and support an interface for querying that information.

X11 Window doesn't compile under Linux

Compiler error:
/glow/source/glowwindow/X11Window.cpp:14:24: fatal error: GLxContext.h: No such file or directory

It is because X11Window.cpp includes the GLxContext, but the window was moved without the context files.
Cross-module includes aren't an option by now, as GLxContext is defined in the "private" source directory of glow.

I checked the windows window and it doesn't need its designated windows context.
So I don't know what solution is preferred.

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.