Giter Club home page Giter Club logo

pie's People

Contributors

aquagoose avatar lenitrous 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

Watchers

 avatar  avatar

pie's Issues

Add Various MSBuild Constants

Various constants used during build.

Planned constants:

  • NO_OPENGL - Disable the OpenGL backend.
  • NO_D3D11 - Disable the D3D11 backend.
  • NO_SHADERC - Disable shaderc.

Buffer mapping support

Add graphics resource for things such as buffers and textures

Add UpdateSubresource-like function for graphics resources (instead of having separate functions per object, although not 100% sure on this due to speed and usability)

Add buffer and texture (? If opengl supports this?) mapping, alongside the existing update methods which will not change functionality (i.e. on direct3d buffers will be mapped if they are dynamic)

Merge Pie and Pie.ShaderCompiler

Merge Pie and Pie.ShaderCompiler into one project, or more likely reverse the dependency (aka Pie references Pie.ShaderCompiler)

Texture improvements

  • GL textures seem to use unsigned byte - this means they won't support floating point textures, etc.
  • Multisampling textures
  • Map textures
  • Fix texture update function

More validation checks and debug logs

This can hopefully allow removal of the GL and DX debugging and just rely on Pie debugging, it will throw exceptions on all invalid calls and will also log useful information if debugging is enabled.

Testing testing testing

Many features remain untested/have little testing, including but not limited to:

  • OpenGL viewport and scissor rectangles
  • All texture types except for single array dimension Texture2Ds and Cubemaps.
  • Texture updating
  • SSBOs
  • Geometry and Compute shaders

HLSL shader support

Currently only GLSL is supported by Pie.ShaderCompiler, and Device.CreateShader (without cross platform) doesn't provide any features to support HLSL either (although please see #22 before continuing)

Pie 1.0 TODO list

This issue tracks all features that need to be added before a 1.0 release. If you see any features missing that you would like added, create an issue or add a comment.

Essential

These are essential things that need to be added before 1.0 can be released.

Desired

These are things I would like to implement, but don't need to be implemented for 1.0, instead can be implemented for a later 1.x version.

Creating framebuffers with OpenGL backend causes nothing to render

As the title says. You create a framebuffer, gpu decides to go to bed and just stops rendering stuff.

I suspect I am just forgetting to unbind the framebuffer when complete, so OpenGL still tries to draw to it.

You can resolve the issue by running GraphicsDevice.SetFramebuffer(null) sometime after framebuffer creation.

This issue does not occur under Direct3D.

Fullscreen support

I know this sounds stupid but Pie doesn't actually support fullscreen mode. The windowing backend doesn't support it, and it's not been officially tested.

Setup CI/CD properly

The repo doesn't have any test/delivery pipeline in place, therefore, to help the maintainers, I'll be making a pipeline for the project that requires nothing but pushing a tag and creating a new release in GitHub, as well setting up test coverage with reporting.

Remove/Improve `Pie.Utils`?

Pie.Utils provides a few built-in VertexPositionXYZW structs, and that's about it. It serves no other purpose, all the functions that used to be in it (which weren't many) have been consolidated into PieUtils.

As such, this package serves little purpose, apart from to provide these structs, which imo is not worthy of a separate package.

I'd be interested in some feedback on this - Should I:
a. Remove it?
b. Remove it and move the VertexXyz structs into Pie? (i'm not a fan of this option)
c. Leave it be?
d. Improve it by adding ????? stuff to it?

I am leaning towards option a, but any feedback would be appreciated.

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.