Silk.NET icon indicating copy to clipboard operation
Silk.NET copied to clipboard

Project Templates for Windowing, OpenGL

Open ThomasMiz opened this issue 3 years ago • 6 comments

Summary of the PR

C# Project templates for Windowing and OpenGL, as discussed in issue #738

ThomasMiz avatar Jan 05 '22 01:01 ThomasMiz

I'd like an opinion on these initial project templates. What do you think?

ThomasMiz avatar Jan 05 '22 01:01 ThomasMiz

Oh by the way this looks amazing so far 😍

Perksey avatar Jan 06 '22 13:01 Perksey

Can you fix this build error? Will just need to add the template projects to the NUKE acceptable exclusions!

A project has not been included in the solution and will not be shipped! "D:\a\Silk.NET\Silk.NET\templates\Silk.NET.Templates\Silk.NET.Templates.csproj" if this is acceptable please add the project name (excluding the path and extension) to the AllowedExclusions array in the NUKE Build.CI.AutoReview.cs file.

Thanks.

Perksey avatar Jan 06 '22 15:01 Perksey

This looks really nice in my (beginner) opinion

f1WN356Uh51a1W6cn avatar Jan 08 '22 08:01 f1WN356Uh51a1W6cn

These comments might be old as they've been pending for god knows how long

Perksey avatar Feb 04 '22 19:02 Perksey

Merged main because CI decided it didn't want to run otherwise

Perksey avatar Feb 05 '22 20:02 Perksey

  • Need to add implicit cast down to uint for strong type handles

  • Weren't of much value

  • What are users expecting from an example?

    • What are they expecting from OpenGL?
    • Never used OpenGL before? vs Never used Silk.NET before?
    • First exposure to Silk.NET?
    • If we move away from native repr a lot, it will be overwhelming (API may be perceived as different)
    • If they're expecting pure OpenGL, give them pure OpenGL.
  • Two separate examples could be overwhelming/confusing

  • Removing/deprecating doesn't make much sense

    • If we have them, don't need to remove them
  • 3.0 intends to make these more valuable

  • Tutorial should be minimal

    • e.g. classlib example, everyone removes Class1
  • Note in the tutorials "we're using uints but they exist"

  • Very polarizing.

  • Use uints

  • Link to tutorial in template to learn more

  • Have a page explaining the strongly typed handles

  • Easier to go 2D -> 3D

  • Very different to monogame/xna

  • Link to page explaining these

  • Adding comments to template balloons the template

  • Not ideal that the windowing backend behaves the way it does anyway

    • We'll accept a change of behaviour in the backend itself to change 24/8 to default
  • Follow GLFW default and use 24/8 in the templates

  • Stay consistent, set these in all templates

  • Alises?

    • silkgl -> silkglwindow
    • silkgltri -> silkgltriangle
  • Viewport on Load game vs window

  • Combine silkglgame and silkglwindow

  • More options at a basic stage = more opportunities for them to pick the wrong option and mess up

  • Not a lot of use cases for inputless window

  • Remove silkglwindow, rename silkglgame to silkgl

    • Update silkgltriangle to match, everything should have input context
  • silkwindow

  • silkglwindow --> (goodbye)

  • silkglgame --> silkgl

  • silkgltriangle --> silkgltriangle (but we should add the input from glgame)

  • Not dropping prefix

Perksey avatar Jan 07 '23 20:01 Perksey