Sample Chapter

Total Page:16

File Type:pdf, Size:1020Kb

Sample Chapter 06 6612 ch03 11/4/04 11:00 AM Page 35 CHAPTER 3 Understanding the Sample Framework Now that the idea is complete, the object model has enough information, and you’ve laid out the specification, you’re almost ready to jump into what you’ve been waiting for: actually writing the code for the game. Normally, you would need to write a lot of “boilerplate” code before you begin this development, which would include such things as enumerat- ing through the devices on your system and picking the most appropriate one to render your scene, as well as creating and maintaining this device. Because the DirectX SDK Summer 2004 Update now includes a robust sample framework that is designed to be used directly by your code and that handles much of this work for you, you can save yourself a lot of time and hassle by simply using that. The examples in this book use this sample framework, so you will spend this chapter examining it. In this chapter, you'll learn . How to create your project . How to use the sample framework to enumerate devices Creating Your Project Construction For the rest of this book, I assume that you are using Visual Studio .NET Cue 2003 for all your development needs. If you do not want to use this envi- ronment, you can look back to Chapter 1, “Game Development and Managed Code,” to see the discussion on compiling code on the command line, which allows you to use any text editor or integrated development envi- ronment (IDE) you want. All the sample code included with the CD has an accompanying Visual Studio .NET 2003 project and solution file for easy loading. 06 6612 ch03 11/4/04 11:00 AM Page 36 36 Chapter 3 Go ahead and load up Visual Studio .NET 2003, and click the New Project button on the start page. If you do not use the start page, click the Project item under the New submenu on the File menu, or use the shortcut Ctrl+Shift+N. Choose the Windows Application item under the Visual C# Projects section. (See Figure 1.3 in Chapter 1 for a reminder of what this dialog looks like.) Name this project Blockers because that is what the name of the game will be. Before you start looking at the code that was automatically generated, first add the code files for the sample framework into your project. Normally, I put these files into a separate folder by right-clicking on the project in the solution explorer and choosing New Folder from the Add menu. Call this folder Framework. Right- click on the newly created folder and this time choose Add Existing Item from the Add menu. Navigate to the DirectX SDK folder, and you will find the sample framework files in the Samples\Managed\Common folder. Select each of these files to add to your project. With the sample framework added to the project now, you can get rid of the code that was automatically generated. Most of it is used to make fancy Windows Forms applications, so it’s irrelevant to the code you will be writing for this game. Replace the existing code and class (named Form1) with the code in Listing 3.1. LISTING 3.1 The Empty Framework using System; using System.Configuration; using Microsoft.DirectX; using Microsoft.DirectX.Direct3D; using Microsoft.Samples.DirectX.UtilityToolkit; public class GameEngine : IDeviceCreation { /// <summary> /// Entry point to the program. Initializes everything and goes into a /// message processing loop. Idle time is used to render the scene. /// </summary> static int Main() { using(Framework sampleFramework = new Framework()) { return sampleFramework.ExitCode; } } } Three things should stand out from this new code. First, you’ll notice that every- thing was removed, with the exception of the static main method, which was modified. The rest of the code was support code for the Windows Form designer. 06 6612 ch03 11/4/04 11:00 AM Page 37 Understanding the Sample Framework 37 Because you won’t be using that designer for this application, the code isn’t rele- vant and can be removed. Second, this code won’t compile because the two inter- faces the game engine class is supposed to implement haven’t been implemented yet. Third, the code doesn’t actually do anything. Before you begin fixing those last two problems, you’ll need to add some refer- ences. Because you will be rendering fancy 3D graphics during this project, you probably need to add references to an assembly capable of doing this rendering. This book focuses on using the Managed DirectX assemblies to do this work, so in the Project menu, click Add Reference. It brings up a dialog much like you see in Figure 3.1. FIGURE 3.1 The Add Reference dialog. If you have the Summer 2004 SDK update of DirectX 9 installed (which you should because the code in this book requires it), you notice that there might be more than one version of each of the Managed DirectX assemblies. Pick the latest version (marked with version 1.0.2902.0). For this project, you add three different assemblies to your references: . Microsoft.DirectX . Microsoft.DirectX.Direct3D . Microsoft.DirectX.Direct3DX 06 6612 ch03 11/4/04 11:00 AM Page 38 38 Chapter 3 The root DirectX assembly contains the math structures that help formulate any computations needed for the rendering. The other two assemblies contain the functionality of Direct3D and D3DX, respectively. With the references added, you should look briefly at the using clause you added in Listing 3.1 to make sure that the namespaces referenced as well. This step ensures that you don’t have to fully qualify your types. For example, without adding the using clause, to declare a variable for a Direct3D device, you would need to declare it as Microsoft.DirectX.Direct3D.Device device = null; The using clauses allow you to eliminate the majority of this typing. (No one wants to type all that stuff for every single variable you would be declaring.) Because you’ve already added the using clauses, you could instead declare that same device in this way: private Device device = null; As you can see, declaring the device in this way is much easier. You’ve saved yourself an immense amount of typing. With these few things out of the way, now you begin to fix the compilation errors in the application and get ready to write your first 3D game. The only interface you’ve currently got to implement is IDeviceCreation, which is designed to let you control the enumeration and cre- ation of your device. You might be thinking, “Enumerating devices? I’ve only got one monitor!” Although most top-of-the-line, modern graphics cards actually do support multi- ple monitors (multimon for short), even if you have only a single device, you still have many different modes to choose from. The format of the display can vary. (You might have even seen this variety in your desktop settings on the Windows desktop, as in 16-bit or 32-bit colors.) The width and height of the full-screen modes can have different values, and you can even control the refresh rate of the screen. All in all, there are quite a few things to account for. To fix the compilation errors in the application, add the code in Listing 3.2. LISTING 3.2 Implementing the Interface /// <summary> /// Called during device initialization, this code checks the device for a /// minimum set of capabilities and rejects those that don’t pass by /// returning false. /// </summary> public bool IsDeviceAcceptable(Caps caps, Format adapterFormat, Format backBufferFormat, bool windowed) { // Skip back buffer formats that don’t support alpha blending 06 6612 ch03 11/4/04 11:00 AM Page 39 Understanding the Sample Framework 39 LISTING 3.2 Continued if (!Manager.CheckDeviceFormat(caps.AdapterOrdinal, caps.DeviceType, adapterFormat, Usage.QueryPostPixelShaderBlending, ResourceType.Textures, backBufferFormat)) return false; // Skip any device that doesn’t support at least a single light if (caps.MaxActiveLights == 0) return false; return true; } /// <summary> /// This callback function is called immediately before a device is created /// to allow the application to modify the device settings. The supplied /// settings parameter contains the settings that the framework has selected /// for the new device, and the application can make any desired changes /// directly to this structure. Note however that the sample framework /// will not correct invalid device settings so care must be taken /// to return valid device settings; otherwise, creating the device will fail. /// </summary> public void ModifyDeviceSettings(DeviceSettings settings, Caps caps) { // This application is designed to work on a pure device by not using // any get methods, so create a pure device if supported and using HWVP. if ( (caps.DeviceCaps.SupportsPureDevice) && ((settings.BehaviorFlags & CreateFlags.HardwareVertexProcessing) != 0 ) ) settings.BehaviorFlags |= CreateFlags.PureDevice; } Look at the first method you declared, the IsDeviceAcceptable method. While the sample framework is busy enumerating the devices on the system, it calls this method for every combination it finds. Notice how the method returns a bool value? This is your opportunity to tell the sample framework whether you consid- er this device acceptable for your needs. Before you look at the code in that first method, however, notice the second method that’s been declared, ModifyDeviceSettings. This method is called by the sample framework immedi- ately before the device is created, allowing you to tweak any options you want. Be careful with the options you choose because you could cause the device creation to fail. Now, back to that first method: first take a look at the parameters that it accepts.
Recommended publications
  • Course 3D MDX: 3D-Graphics with Managed Directx 9.0 Chapter C4: Standard Meshes = Primitives
    1 Course 3D_MDX: 3D-Graphics with Managed DirectX 9.0 Chapter C4: Standard Meshes = Primitives Copyright © by V. Miszalok, last update: 11-08-2006 Project mesh_primitive1 Form1, OnResize, OnTimer Exercises Project mesh_primitive1 Main Menu after starting VS 2005: File → New Project... → Templates: Windows Application Name: mesh_primitive1 → Location: C:\temp → Create directory for solution: switch it off → OK Delete the files Program.cs and Form1.Designer.cs and the content of Form1.cs, as described in the chapters 2DCisC1 to 2DCisC4. If You can't find a Solution Explorer-window, open it via the main menu: View → Solution Explorer. Inside the Solution Explorer-window click the plus-sign in front of mesh_primitive1. A tree opens. Look for the branch "References". Right-click References and left-click Add Reference.... An Add Reference dialog box opens. Scroll down to the component name: Microsoft.DirectX Version 1.0.2902.0. Highlight this reference by a left-click and (holding the Strg-key pressed) two more references: Microsoft.DirectX.Direct3D Version 1.0.2902.0 and Microsoft.DirectX.Direct3DX Version 1.0.2902.0 or 1.0.2903.0 or 1.0.2904.0. Quit the Add Reference dialog box with OK. Check if three references: Microsoft.DirectX and Microsoft.DirectX.Direct3D and Microsoft.DirectX.Direct3DX are now visible inside the Solution Explorer window underneath mesh_primitive1 → References. Form1, OnResize, OnTimer Write the following code to Form1.cs: using System; using System.Windows.Forms; using System.Drawing; using Microsoft.DirectX; using
    [Show full text]
  • Course 3D MDX: 3D-Graphics with Managed Directx 9.0 Chapter C2: Cylinder with Directional Light
    1 Course 3D_MDX: 3D-Graphics with Managed DirectX 9.0 Chapter C2: Cylinder with Directional Light Copyright © by V. Miszalok, last update: 26-04-2007 Project lights1 This chapter is a summary of a Direct3D-Tutorial from Microsoft: Tutorial4. You find the tutorial here: C:\DXSDK\Samples\Managed\Direct3D\Tutorials. Main Menu after starting VS 2005: File → New Project... → Templates: Windows Application Name: lights1 → Location: C:\temp → Create directory for solution: switch it off → OK Delete the files Program.cs and Form1.Designer.cs and the content of Form1.cs, as descibed in the chapters 2DCisC1 to 2DCisC4. If You find no Solution Explorer-window, open it via the main menu: View → Solution Explorer. Inside the Solution Explorer-window click the plus-sign in front of lights1. A tree opens. Look for the branch "References". Right-click References and left-click Add Reference.... An Add Reference dialog box opens. Scroll down to the component name: Microsoft.DirectX Version 1.0.2902.0. Highlight this reference by a left-click and (holding the Strg-key pressed) the reference Microsoft.DirectX.Direct3D Version 1.0.2902.0 somewhere below. Quit the Add Reference dialog box with OK. Check if both references Microsoft.DirectX and Microsoft.DirectX.Direct3D are now visible inside the Solution Explorer window underneath lights1 → References. If You use Visual Studio 2005 Professional You should switch off the vexatious automatic format- and indent- mechanism of the code editor before You copy the following code to Form1.cs (otherwise all the code will be reformatted into chaos): 1. Main menu of Visual Studio 2005 Professional: click menu "Tools".
    [Show full text]
  • Marc Eaddy, [email protected], Curriculum Vitae, 2/4
    155 E 49 th Street #6B New York, NY 10017 Marc +1 (212) 593-3583 [email protected] Eaddy www.columbia.edu/~me133 Research Interests I plan to make software easier to develop and maintain by enabling developers to better understand and modularize programs. My primary research area is Software Engineering, focusing on development tools, language design, program analysis, and empirical studies. Education 9/2003–5/2008 PhD in Computer Science, Columbia University, New York, NY GPA: 4.0 Thesis: An Empirical Assessment of the Crosscutting Concern Problem Advisor: Alfred Aho 5/2001 MS in Computer Science, Columbia University, New York, NY GPA: 4.0 4/1995 Dual BS in Electrical Engineering and Computer Science, GPA: 3.1 Florida State University, Tallahassee, FL Research Experience 6/2005–present Research Assistant, Columbia University, Prof. Alfred Aho, New York, NY Performed pioneering research on the crosscutting concern problem, i.e., the inability to effectively modularize the concerns (requirements, features, etc.) of a program. Created model to formalize the problem, methodology and tool (Java, 19,000 lines) for locating code related to a concern, and metrics to quantify the amount of crosscutting. Obtained empirical evidence indicating that as crosscutting increases so do defects. Created tools and language extensions for reducing crosscutting concerns, including Wicca (C#, 37,000 lines), the first dynamic aspect-oriented programming system to support source-level debugging, edit-and-continue, and fine-grained weaving using statement-level annotations. 6/2006–8/2006 Research Intern, Microsoft Research, Programming Languages and Tools Group, Redmond, WA Created program dependency analysis and visualization tool that refactors classes into open classes to eliminate compile-time dependency cycles.
    [Show full text]
  • Windows Presentation Foundation
    1538.book Seite 39 Mittwoch, 9. Juni 2010 4:40 16 Lehnen Sie sich zurück. In diesem Kapitel werden Sie »gebootet«. Nach einem Blick auf die WPF im .NET Framework und einem Schnelldurchlauf durch die Windows- Programmiergeschichte erfahren Sie mehr über die Architektur und Konzepte der WPF. 1 Einführung in die WPF 1.1 Die WPF und das .NET Framework Mit der Windows Presentation Foundation (WPF) steht seit der Einführung des .NET Frameworks 3.0 gegen Ende des Jahres 2006 ein modernes Programmiermodell für die Entwicklung von Windows- und Webbrowser-Anwendungen zur Verfügung. Als Teil des .NET Frameworks ab Version 3.0 ist die WPF Microsofts strategische Plattform für die Entwicklung von Benutzeroberflächen unter Windows. 1.1.1 Die WPF im .NET Framework 3.0 Das Ende 2006 eingeführte .NET Framework 3.0 besteht aus den Komponenten des .NET Frameworks 2.0 und vier umfangreichen Programmiermodellen. Dies sind WPF, Win- dows Communication Foundation (WCF), Windows Workflow Foundation (WF) und Win- dows CardSpace (WCS). Das auf Windows Vista standardmäßig vorinstallierte .NET Framework 3.0 wird auch auf Windows Server 2003 und Windows XP unterstützt (siehe Abbildung 1.1). Mit den vier eingeführten Programmiermodellen WPF, WCF, WF und WCS stellte Microsoft erstmals größere, in Managed Code implementierte Bibliotheken zur Verfügung. Für die Entwick- lung von Benutzeroberflächen unter Windows stellt die WPF das zukünftige Program- miermodell dar. 39 1538.book Seite 40 Mittwoch, 9. Juni 2010 4:40 16 1 Einführung in die WPF .NET Framework 3.0 Windows Windows Windows Windows Presentation Communication Workflow CardSpace Foundation Foundation Foundation (WCS) (WPF) (WCF) (WF) .NET Framework 2.0 Windows ADO.NET ASP.NET ..
    [Show full text]
  • Beginning .NET Game Programming in En
    Beginning .NET Game Programming in en DAVID WELLER, ALEXANDRE SANTOS LOBAo, AND ELLEN HATTON APress Media, LLC Beginning .NET Game Programming in C# Copyright @2004 by David Weller, Alexandre Santos Lobao, and Ellen Hatton Originally published by APress in 2004 All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. ISBN 978-1-59059-319-6 ISBN 978-1-4302-0721-4 (eBook) DOI 10.1007/978-1-4302-0721-4 Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. Technical Reviewers: Andrew Jenks, Kent Sharkey, Tom Miller Editorial Board: Steve Anglin, Dan Appleman, Gary Cornell, James Cox, Tony Davis, John Franklin, Chris Mills, Steve Rycroft, Dominic Shakeshaft, Julian Skinner, Jim Sumser, Karen Watterson, Gavin Wray, John Zukowski Assistant Publisher: Grace Wong Project Manager: Sofia Marchant Copy Editor: Ami Knox Production Manager: Kari Brooks Production Editor: JanetVail Proofreader: Patrick Vincent Compositor: ContentWorks Indexer: Rebecca Plunkett Artist: Kinetic Publishing Services, LLC Cover Designer: Kurt Krames Manufacturing Manager: Tom Debolski The information in this book is distributed on an "as is" basis, without warranty. Although every precaution has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in this work.
    [Show full text]
  • PDF Download Beginning Directx 10 Game Programming 1St Edition Kindle
    BEGINNING DIRECTX 10 GAME PROGRAMMING 1ST EDITION PDF, EPUB, EBOOK Wendy Jones | 9781598633610 | | | | | Beginning DirectX 10 Game Programming 1st edition PDF Book In addition, this chapter explains primitive IDs and texture arrays. Discover the exciting world of game programming and 3D graphics creation using DirectX 11! Furthermore, we show how to smoothly "walk" the camera over the terrain. Show all. Show next xx. In addition, we show how to output 2D text, and give some tips on debugging Direct3D applications. JavaScript is currently disabled, this site works much better if you enable JavaScript in your browser. Pages Weller, David et al. The reader should satisfy the following prerequisites:. Beginning directx 11 game programming by allen Torrent 77e6ecdabd72afe42d5ec9 Contents. Beginning directx 11 game programming - bokus. Chapter 17, Particle Systems: In this chapter, we learn how to model systems that consist of many small particles that all behave in a similar manner. This book is anything but game programming,. He made the odd shift into multitier IT application development during the Internet boom, ultimately landing inside of Microsoft as a technical evangelist, where he spends time playing with all sorts of new technology and merrily saying under his breath, "I can't believe people pay me to have this much fun! For example, particle systems can be used to model falling snow and rain, fire and smoke, rocket trails, sprinklers, and fountains. Beginning DirectX 11 Game Programming. Ultimate game programming - coming soon Ultimate Game Programming coming soon website. We will be pleased if you get back more. Chapter 5, The Rendering Pipeline: In this long chapter, we provide a thorough introduction to the rendering pipeline, which is the sequence of steps necessary to generate a 2D image of the world based on what the virtual camera sees.
    [Show full text]
  • As of Directx 8, Directdraw (2D) and Direct3d (3D) Have Been Combined
    GAM666 – Introduction To Game Programming Basic 3D Using DirectX 9 ● As of DirectX 8, DirectDraw (2D) and Direct3D (3D) have been combined into DirectX Graphics (still often called Direct3D, however) ● DirectX Graphics includes a library of 3D math helper functions, d3dx9math.h, the use of which is entirely optional but has gained wide acceptance GAM666 – Introduction To Game Programming Basic 3D Using DirectX 9 DirectX 9 COM Object Pointers: ● LPDIRECT3D9 – main Direct3D control object used to create others ● LPDIRECT3DDEVICE9 – device onto which 3D is rendered ● LPDIRECT3DVERTEXBUFFER9 – list of vertices describing a shape to be rendered ● LP3DXFONT – font for rendering text onto a 3D scene GAM666 – Introduction To Game Programming Basic 3D Using DirectX 9 Basic frame rendering logic: ● Clear the display target's backbuffer using Direct3DDevice Clear() ● Call Direct3DDevice BeginScene() ● Render primitives [shapes] using Direct3DDevice DrawPrimitive() and text using Direct3DXFont DrawText() ● Call Direct3DDevice EndScene() ● Flip backbuffer to screen with Direct3DDevice Present() GAM666 – Introduction To Game Programming 3D Setup ● Direct3DCreate9() to create Direct3D object ● Enumeration in DirectX Graphics is easier than in DirectDraw7 (no enumeration callback function needs to be supplied, rather call a query function in your own loop) ● Direct3D CreateDevice() to create Direct3DDevice ● Direct3DDevice CreateVertexBuffer() to allocate vertex buffers ● D3DXCreateFont() to make 3D font GAM666 – Introduction To Game Programming Critical
    [Show full text]
  • Virtual Class Room?
    1 Virtual Heads Team Nizhniy Novgorod State University students, studying on department of Calculating Math. and Cybernetics: Evgeny Gorodetsky - 2nd year master student; Alexey Polovinkin - 2nd year master student; Sergey Sidorov - 2nd year master student; Sergey Liverko - 4th year student; Scientific adviser: Vadim E. Turlapov (professor, doctor of technical science) Team was working since October 2006. 3 Project motivation and goals Problems of modern distant education: No tools for effective live communication between teacher and large group of students; Live audio and video exchange between all participants of the lection is too expensive with general internet connection; No integrated tools for communication and presentation; No integrated instruments for automated scheduling and conducting lections; Solution is to develop a set of integrated tools for: Organization and conducting lections in large groups of students; Live communication between all participants of the lection; Effective built-in tools for presentation demonstration. 4 What is Virtual Class Room? User control: users registration with role based security for students and teachers; users authorization; users group access permissions. Lection organization: creating lection schedule by teachers; registration to scheduled lections for students. Presentation demonstration: current slide review by all students during lection; auto slide switching for all users by teacher; sharing of hand-written drawings on presentation by teacher. “Live faces” visualization:
    [Show full text]
  • 3D-SOUND PROGRAMMING with MICROSOFT DIRECTX Surround Sound in Practice
    3D-SOUND PROGRAMMING WITH MICROSOFT DIRECTX Surround sound in practice Thesis of the University of Applied Sciences Degree programme in Business Information Technology Visamäki Fall 2013 Ville Niskanen Mr. Ville Niskanen ABSTRACT Unit Visamäki Name of degree programme Business Information Technology Option System development Author Ville Niskanen Year 2013-11-28 Subject of Bachelor’s thesis 3D-sound programming with Microsoft Di- rectX - Surround sound in practice. port. e sis. e ment. e ABSTRACT The thesis work done consists of computer application that plays various 3D-sound effects. The application has been realized with the main applica- tion and the actual sound effects have been implemented in the form of ex- traneous plug-in files. Rough implementation of the produced program structure has been described in this thesis document essay part. As the subject of the thesis has been an individual research project there have been no work life relations. The objectives of the thesis have been quite simple targeting, as can be presumed based on foregoing, in programming application that plays vari- is under the Creative Commons CCO license agre license CCO Commons Creative the under is ous 3D-sound effects, and furthermore creating mathematical algorithms report to implement 3D-sound effects. esis esis The knowledge basis, based on the fact that Microsoft DirectX-program- ming environment, as well as likely all Microsoft-programming compo- nents, is well-documented, and on the actual Microsoft DirectX-program- ming documentation found from the www, and furthermore on the materi- al found from the web covering the subject of digital signal processing.
    [Show full text]
  • Personal Data: Summary
    Personal data: Name: Bart van Haaff Nationality: Dutch Date of birth: 04/05/1966 Place of birth: The Hague Address: Dorpsstraat 34 City: Goudswaard, ZH ZIP Code: 3267 AG Telephone: 0186-693793 Mobile: 06-17256966 E-mail: mailto:[email protected] Website www.excode.nl LinkedIn profile: http://www.linkedin.com/in/bartvanhaaff VAR: WUO KVK 24444633 Summary 20 years of continuous professional software development experience, mostly on the Microsoft Windows platform. Worked extensively with all major Microsoft frameworks and technologies, including Visual Studio, COM, .NET, ASP.NET, SharePoint, SQL Server, DirectX, WPF, C#, C++, MFC, and ATL. Spend many years building and shipping commercial products gaining experience in large scale software projects, software product lifecycles, development team dynamics, configuration management and customer support issues. Currently available as a freelance consultant. Competences: Competence Level Remarks Programming languages C, C++: 20 years Including the C++ Standard Template Library (STL) C#: 10 years Including C++/CLI on .NET JavaScript, 2 years OO analyses and design 15 years Design patterns, UML, component based development, test driven development, SCRUM Technologies Microsoft C7.0 → Visual Studio.NET.2010, MFC, ATL, COM(+), ActiveX, .NET, .NET Compact Framework, .NET COM Interop, XML, WCF, WPF, (P)LINQ, ASP.NET, jQuery, AJAX, CCS, (managed) DirectX, WSS3.0/MOSS2007 (SharePoint), Progress Orbix CORBA middleware Databases 10 years SQL (ADO.NET & LINQ) with Microsoft SQL Server (Enterprise, Compact,
    [Show full text]
  • High Performance Visualization Through Graphics Hardware and Integration Issues in an Electric Power Grid Computer-Aided-Design Application
    UNIVERSITY OF A CORUÑA FACULTY OF INFORMATICS Department of Computer Science Ph.D. Thesis High performance visualization through graphics hardware and integration issues in an electric power grid Computer-Aided-Design application Author: Javier Novo Rodríguez Advisors: Elena Hernández Pereira Mariano Cabrero Canosa A Coruña, June, 2015 August 27, 2015 UNIVERSITY OF A CORUÑA FACULTY OF INFORMATICS Campus de Elviña s/n 15071 - A Coruña (Spain) Copyright notice: No part of this publication may be reproduced, stored in a re- trieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording and/or other- wise without the prior permission of the authors. Acknowledgements I would like to thank Gas Natural Fenosa, particularly Ignacio Manotas, for their long term commitment to the University of A Coru˜na. This research is a result of their funding during almost five years through which they carefully balanced business-driven objectives with the freedom to pursue more academic goals. I would also like to express my most profound gratitude to my thesis advisors, Elena Hern´andez and Mariano Cabrero. Elena has also done an incredible job being the lead coordinator of this collaboration between Gas Natural Fenosa and the University of A Coru˜na. I regard them as friends, just like my other colleagues at LIDIA, with whom I have spent so many great moments. Thank you all for that. Last but not least, I must also thank my family – to whom I owe everything – and friends. I have been unbelievably lucky to meet so many awesome people in my life; every single one of them is part of who I am and contributes to whatever I may achieve.
    [Show full text]
  • Advanced 3D Game Programming with Directx 10.0 / by Peter Walsh
    Advanced 3D Game Programming with DirectX® 10.0 Peter Walsh Wordware Publishing, Inc. Library of Congress Cataloging-in-Publication Data Walsh, Peter, 1980- Advanced 3D game programming with DirectX 10.0 / by Peter Walsh. p. cm. Includes index. ISBN 10: 1-59822-054-3 ISBN 13: 978-1-59822-054-4 1. Computer games--Programming. 2. DirectX. I. Title. QA76.76.C672W3823 2007 794.8'1526--dc22 2007041625 © 2008, Wordware Publishing, Inc. All Rights Reserved 1100 Summit Avenue, Suite 102 Plano, Texas 75074 No part of this book may be reproduced in any form or by any means without permission in writing from Wordware Publishing, Inc. Printed in the United States of America ISBN 10: 1-59822-054-3 ISBN 13: 978-1-59822-054-4 10987654321 0712 DirectX is a registered trademark of Microsoft Corporation in the United States and/or other counties. Other brand names and product names mentioned in this book are trademarks or service marks of their respective companies. Any omission or misuse (of any kind) of service marks or trademarks should not be regarded as intent to infringe on the property of others. The publisher recognizes and respects all marks used by companies, manufacturers, and developers as a means to distinguish their products. This book is sold as is, without warranty of any kind, either express or implied, respecting the contents of this book and any disks or programs that may accompany it, including but not limited to implied warranties for the book’s quality,performance, merchantability,or fitness for any particular purpose. Neither Wordware Publishing, Inc.
    [Show full text]