Tag Archives: Software Sagacity

C# Design Patterns: #5 – Builder

BuilderThe Builder pattern is a narrowly-focused pattern that enables incremental creation of new products. This pattern, though limited in application, when applied correctly, brings significant power and flexibility.

The guiding concept behind the Builder pattern is separation of the actual “building” of an product from its design plan. The prototypical example of the builder pattern is saving files to multiple formats. If an application allows saving files to different formats, it will have an internal representation of the data, and will need to “build” different formats dynamically from the same source object.
Continue reading

RSS Twitter LinkedIn Facebook Email

C# DirectX – Capturing Frame Screenshots

ScreenshotsScreen capture in DirectX is an inconspicuous element of the rendering pipeline that can provide many auxiliary benefits to 3D applications.  Through creative use of the screen capture functionality, the operation can be extended to not just video creation, but also multi-stage graphics and post-processing.  At its core is the code that enables capture of the current frame in the rendering process.

When programming screenshots, the most important element is placing the code at the correct point in the render loop.  A poorly integrated screenshot function can cause instability and system crashes in the 3D application due to race conditions or memory overwrite.
Continue reading

RSS Twitter LinkedIn Facebook Email

C# DirectX – Automatic Graphics Card Fallback

3D GraphicsWhen developing 3D graphics applications, one of the recurrent challenges that plagues developers is balancing great graphics with end-user compatibility and reach.  The more complex the graphics techniques utilized by the application, the fewer end-users will be able to actually run the software.  With the explosion of mobile technology on slow and low-power hardware, 3D graphics are even further limited than they were years before.

In order to achieve a compromise between compatibility and graphics quality, a technique called Shader Fallback enables developers to switch to lower-quality graphics when necessary.  This enables users with high-powered PCs to run the software at its maximum specifications, while simultaneously providing users on slim hardware with functional access the content and interface of the application.
Continue reading

RSS Twitter LinkedIn Facebook Email

Improving Rendering Speed in the C# PictureBox

.NET DevelopmentWindows Forms’ most versatile control is arguably the PictureBox. By overriding the OnPaint method, the PictureBox can be used to recreate the functionality of most other controls. One challenge, however, is using the PictureBox for animations or graphics applications that require a quick frame rate. Below are a few methods for pulling the maximum possible FPS from the C# PictureBox control.
Continue reading

RSS Twitter LinkedIn Facebook Email

Can User Interface Design Make the World a Better Place?

VisionaryWhen building custom software, a user interface designer will progress through several levels of skill development.  Similar to Maslow’s Hierarchy of Needs, each lower level must be fulfilled before a designer can progress to the next plateau.  The question is – where does the pyramid end, and where is it right to draw the line as to the responsibility of the UI designer?
Continue reading

RSS Twitter LinkedIn Facebook Email