Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Submission #10

Open
wants to merge 123 commits into
base: master
Choose a base branch
from
Open

Submission #10

wants to merge 123 commits into from

Conversation

rohith10
Copy link

No description provided.

rohith10 and others added 30 commits November 14, 2013 03:30
…y code. Use GLFW, and the WinMain entry point.
…Hello member variables!

Next step - separate out all the renderer/API related functions into separate class.
On to much needed refactoring/tidying up now.
… Renderer. Also, refactored/renamed a whole bunch of stuff with more on the way.
… now. GL facing ops now in Renderer. App holds all the models.

Now uses draw lists, where objects are grouped by material. There's only one shader switch per list.
Now uses logging routines to log messages as OutputDebugStrings (VS' Output window) or to File.

Miles more to go before this can be called an optimized renderer by any definition. Next steps - get in a Shader Constant Manager, fix how lights are handled, and restore all of the original functionality (all the debug views from the original are temporarily disabled).
…ader; ShaderConstantManager now handles bool as ints.
…ners and should be deleted first. Removed a default framebuffer bind in render loop since it's followed by another bind immediately afterward.
…xture bindings for that program. Will hold Constant Buffer bindings as well, once all the uniforms are packaged into uniform buffers; Moved common includes/Enums to Common.h.
…! Need to be more careful when copy-pasta'ing)
…chnique. This class will hold the bind points for all the uniforms, so that all shader constants and textures can be set via this class. Puts an end to per-frame calls to glGetUniformLocation.

Also includes the following changes:
Moved common includes/Enums to Common.h.
- Don't normalize vertex normals in vert shader since we're doing it already to the interpolated normal in the frag shader.
…eed to get new version of tinyobjloader and rectify the mtl file.
- Overall: better handling of cmd line args.
- GLApp: tinyobjloader is isolated to this module.
- tinyobjloader: Update to version as of 4/12/2015. Now header only.
- GLProgram: If a texture is not associated with a slot, it will be bound to 0. For example, if an item has a t2DDiffuse binding, but not a t2DNormal binding, the t2DNormal slot will be bound to 0. This allows correct sampling of unbound textures to (0,0,0,0).
- TextureManager: will only try to load and create a texture if the filename is not empty.
- Utility: new methods to log a complete line so there's no longer to a need to do LogFile/LogOutput followed by LogFile/LogOutput("\n").
…rming the former only once a program is set active.
…l only if the debugger is present, in effect directing the output to the debugger. Otherwise, it logs to file.

Now ignoring the logfile thus generated.
GL 4.5 methods have a lot more driver overhead than GL 4.1/2 or even D3D11, even though on paper they have direct parallels to the D3D11 way of doing stuff. There really is no excuse for this in 2015.. oops, 2016.
…ions and named object functions (Direct State Access) wherever possible; Vertex Specification is separate from the VB binding.
…, instead of being in the lib directory shared32, since it's a source-only library.
… reference the libs built by 2015; VS2015 projects now emit their intermediate and output files to separate directories for better co-existence (with 2013).
…se files define a namespace which holds the hash codes of various shader variable names so that we don't end up running a hash function on every single variable that needs to be set every single frame, which is terribly inefficient. At startup, we initialize the hash codes by running the hash function on all shader variable names that we need, and then use them every single frame.

Declared wrapper types ShaderConstantReference, TextureReference and ConstantBufferIndex to ensure some degree of type safety. All of these wrap uint32s and provide implicit conversions to/from uint32 so that they can be used as before.
[minor] Upgrade to Windows 10 SDK version 14393.
All projects build only in 64-bit now.
GLFW upgraded to 3.2.1, and compiled locally to get VS 2017 lib/dll.

Next up: Upgrade GLEW.
Remove multi-context build configurations from the GLEW project.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant