Jump to content

  • Log In with Google      Sign In   
  • Create Account

Jason Z

Member Since 04 Feb 2004
Offline Last Active Apr 30 2016 09:43 AM

Topics I've Started

Hololens Development Tools

30 March 2016 - 04:26 PM

In case you didn't catch the live stream, the Hololens development tools (including the emulator) are now available: https://www.microsoft.com/microsoft-hololens/en-us/developers


I'm in the process of installing everything, but it would be interesting to hear any impressions you guys have on the tools!

Registering Window Class Multiple Times

10 January 2015 - 08:50 AM

I was recently taking a critical look at some of the basic Win32 classes that I have in Hieroglyph 3, and I want to move to a more proper implementation of my Win32RenderWindow class.  Basically the class manages an HWND, handles the initialization (window class registration + window creation) and shutdown, and then map the useful Win32 API calls around the managed HWND.  None of this is very special, and I'm sure most games / engines have similar code there.


While looking around for some good examples of RAII based management of an HWND, I found this gem of a post: Simple Main Window Class.  The code in the post is of quite good quality, and sheds light on some of the dark corners of handling Win32 windows.  However, I have a question about something I saw in there...  The author goes to great lengths to generate a unique window class name for each instance of the Window class.  This is done with some template meta programming to append a value to the end of a string, and it seems to work fine in practice (he even ensures that it works for different platforms - both x86 and x64 work correctly).  So whenever multiple windows are created, they each have their own unique window class to use.


In Hieroglyph 3, I simply register the window class once during the initialization of each window.  This hasn't ever given me any troubles, since all of the windows use the same Window Procedure function to handle messages (it basically just looks up a pointer to a handler object and forwards the message call).  After about 30 minutes looking through the Win32 documentation, I haven't seen anything that indicates that registering the same class multiple times causes any harm.  In addition, the docs say that all of a process's window classes are automatically deregistered when the process ends.


So finally the question: is it worth it to add a complex method of generating unique window class names?  It seems like a major complication to something that could potentially be very simple - but if there is a good motivating factor behind it, then of course I can go down a similar path.  Any advice from the windows experts out there?  What do you guys do???

Direct3D 12 Staging Resources

06 May 2014 - 12:20 PM

Over the years since Direct3D 11 was released, I would venture to guess that one of the most common questions / problems that has arisen from new developers was the requirement to have a staging resource when you wanted to have both CPU and GPU access to a resource.  It is counter-intuitive to have this requirement, and if your resources are really big (i.e. for 3D textures) then it is even more of a trouble since you have to keep a huge resource around just for copying data back and forth.  The alternative is to temporarily create a resource just for the transfer event and then release it, but that is against recommended practices.


So this post is an open request to the Direct3D 12 developers (of which I know at least one of them is lurking around... Max!).  Please allow the control of staging properties of a resource with the resource barrier objects.  If we can change the CPU / GPU access properties with a barrier transition, then it will let the developer have easier control over his/her resources and reduce the number of API calls needed to copy data back to the CPU.  This should theoretically improve performance (fewer API calls) and it lets the algorithm implementer explicitly show what he is trying to achieve.


This functionality may already be possible in the current state of the API (I haven't seen any more than the BUILD 2014 talk) but if it isn't, please consider adding this!


If there are other topics like this that the general community sees as relevant or important to change for D3D12, please post those ideas so that the feedback gets to the right people!

BUILD 2014 Sessions

01 April 2014 - 12:18 PM

Microsoft's BUILD 2014 conference will be starting tomorrow, and in case you missed it, the session schedule is up now.  It is an interesting list of topics, and a number of them very relevant for the DirectX crowd.  The session list can be found here: http://channel9.msdn.com/Events/Build/2014?sort=sequential&direction=desc#theSessions.  The videos from each session should be posted 24-48 hours after they occur, and I think there will be live streaming of some of the sessions while they are occurring - so if you have the time, be sure to check them out!


Here are a few highlights that I saw - some are DirectX related, others are just of general interest to me:


Developing Apps Using the Common XAML UI Framework - Sounds like a subset of XAML that allows for common development across Windows and Windows Phone.

The New Windows Phone Application Model - The title says it all I suppose.  There should be quite a bit of interesting WP content here.

Building Games for Windows - Sounds like an overview of all the available technologies for making games on Windows.

Direct3D 12 API Preview - This is probably the most anticipated talk for me, so hopefully we will find out more about the low level details on D3D12...

3D Printing with Windows - This sounds pretty cool, especially the part where it says you can integrate the printing into your apps.  That could be really cool for game scenarios.

Windows Desktop Development Platform Advancements - Everyone is afraid of what might end up happening to the desktop, but this talk seems to indicate that features are still being added to desktop app development...  For an old school developer like me, this sounds promising.

Kinect 101 - Everyone's favorite body tracker, covering version 2 of the device.

Innovations in High Performance 2D Graphics with DirectX Across Windows and Windows Phone - Sounds like a discussion on D2D performance.

Using Orleans to Build Halo 4’s Distributed Cloud Services in Azure - Cloud services are going to be bigger and bigger in game development, so hearing about examples like these sounds like an interesting topic.

DirectX Graphics Development with Visual Studio 2013 - Sounds like an overview of the VS2013 graphics tools.

Modern C++: What You Need To Know - A talk by the always entertaining and informative Herb Sutter about modern C++.

Developing Neural Networks with Visual Studio - I am generally interested in learning algorithms, so neural networks are always of interest.  They also hint at a future product, so perhaps more information about a new library or product might be revealed there...

Understanding the Xbox One Game Platform Built on Windows - This sounds like a description of how Xbox One is using Windows, which could be an interesting topic.

Cutting Edge Graphics in HTML5 - Sounds like a discussion of the WebGL support in Internet Explorer.  WebGL is a viable option for browser based tools now that all of the major browsers support it, so this could be interesting.


Happy watching, and if any other ones jump out at you, please feel free to add them in comments below!

Graphics Programming and Tool (the band)

01 September 2013 - 09:01 AM

This topic might legitimately be put into the one of the social forums, but I wanted to be sure to reach as many graphics programmers as possible.  Through lots of discussions with other graphics programmers throughout the years, I have started to notice a relatively strong correlation between being interested in graphics and the rock band Tool.  I personally really like the band (they are actually my favorite...), but they definitely are not for everyone.


There seems to be a sufficient correlation to put it to the test - I would like to know if you meet the following criteria:


1. You are interested enough in graphics programming that you regularly visit this forum.

2. You have at least one Tool album, digital music purchase, streaming radio station, or other option.


This is purely out of interest, and I'm curious to see how many of you have the same interest that I do!  Any other comments about this potential link are also welcome - including confirmation or refutation :)