Designing Non-Rectangular Skin-able GUIs.
|
|
- Theresa Kelly
- 5 years ago
- Views:
Transcription
1 Designing Non-Rectangular Skin-able GUIs. M.Tsegaye Department of Computer Science Rhodes University Grahamstown, 6140, South Africa Phone: +27 (46) Fax: +27 (46) Abstract The majority of GUI applications in use today on popular desktops use a simple rectangular window with components that paint themselves using unattractive solid colours. These user interfaces are not always suitable for specialized applications that are used for representing real world objects such as digital cameras and portable media players. This paper presents the process involved in creating non rectangular skin-able user interfaces that use realistic textures to paint themselves. Index Terms skin-able application, layered windows, window skinning, non rectangular windows, user interface design 1.0 Introduction Traditional applications on most GUI systems use rectangular windows as the primary user interface regardless of the type of application the user interface was designed for. Most of these applications try to represent real world three dimensional objects such as audio layers, digital cameras and telephones with rectangular windows that have menu bars, scrollbars and other common 2D GUI controls. This type of interface, although simple to use, is not always intuitive. It requires a long time to get used to. The use of GUIs that utilise mostly rectangular but skin-able windows has increased with the introduction of powerful PC hardware such as the GPUs from ATI and NVIDIA. The popular Microsoft Windows platform now has skin-able user interface components (introduced in Windows XP). Microsoft [1] claims that this new more attractive interface increases user productivity. Apple s Aqua interface [2], introduced much earlier than Windows XP s, uses a similar approach. It has GUI components that are very attractive and gentle on the eye. Wired news [3] gives an account of the skin-able user interface revolution. It lists Winamp, a popular skin-able audio player, as the application that started the skinning phenomenon. Most UNIX window managers such as Blackbox and Enlightenment have always offered skin-ability to users. Commercial products that allow the creation of non rectangular and rectangular skin-able user interfaces for the Microsoft Windows platform exist. One such product is WindowBlinds [5]. Window managers such as KDE on UNIX also make available an API usable under an open source license. This paper presents an approach that can be used for creating non-rectangular and rectangular skin-able user interfaces in much the same way as they are implemented in commercial systems. The following steps are followed: Selection of an appropriate skin script format to allow the definition of UI components. Creation of a library for dynamically loading the above skin script at runtime. Design and creation of UI controls which are aware of being skinned. Design and creation of skins for these controls. The results presented use the Microsoft Windows API but the ideas can be applied on other platforms using a platform specific API. Appendix A presents a summary of the Microsoft Windows API relevant to skin-able user interface development. 2.0 Selecting a Skin Definition Script Format A skin definition script enables users to define the UI for an application at runtime instead of at compile time as done in traditional applications. Any time during the life of the application the script file can be loaded by the application, parsed, interpreted and the user interface updated as defined by script. 2.1 File Formats Various file formats can be used for the script e.g. a simple text file with an application specific layout or a binary format. A data definition format such as XML would be the most logical format to use because it is an industry standard. Numerous libraries exist for parsing it and any XML editing application can be used for editing the script. XML also shows the hierarchical relationship of components clearly. UIs usually have a hierarchical relationship e.g. most applications have a parent frame with child components that can be frames themselves, and those child frames can have children. 2.2 UI Definition Format The script needs to define every component of the user interface. Since XML is selected as the file format for the script, the skin definition format can be as verbose as necessary to make it easier for human editors to understand without making it any more difficult to parse. Here is how a simple skin definition with no components would look like: <?xml version = 1.0?> <My_Interface> </My_Interface>
2 2.2.1 Texture Entries Skinning makes extensive use of textures. These textures can use up a lot of memory if not managed well. The script entry for defining textures should act as a pointer to an area where textures are located. Here is the texture definition entry that has been selected: <?xml version = 1.0?> <My_Interface> <bitmap name= skin.png id= 0 transparency= #ff00ff /> </My_Interface> The texture entry, named bitmap, defines the location of a texture resource skin.png, an id for it and a colour on the texture to be considered as transparent, The PNG file format supports transparency natively so the application can extract the value from the texture which makes the transparency entry redundant. It is specified here for clarity. In cases where texture formats such as the BMP format, which does not handle transparency well, are used it is mandatory. Multiple entries for textures, each with different ids, can be specified Frame entries The next set of entries in the skin definition script should be those that define the various controls on the UI. Just about every UI has a frame. The following frame definition is used: <?xml version = 1.0?> <My_Interface> <bitmap name= skin.png id= 0 transparency= #ff00ff /> <bitmap name= skin2.png id= 1 transparency= #ff00ff /> <window name= test1 main= yes > <settings> <background left= 10 top= 10 width= 450 height= 150 bitmapid= 0 /> </settings> <window name= child1 child= yes > <settings> <background left- 10 top= 100 width= 250 height= 350 bitmapid= 1 /> </settings> </window> </window> <window name= test2 > <settings> <background left= 10 top= 10 width= 450 height= 150 /> <color name= background value= #ff0000 /> </settings> </window> </My_Interface> The XML element window represents a frame. The script fragment above shows two top level windows and one child window. The first is designated as the main window. The texture region that will be used to paint this frame s background is defined by the background entry, which has a pointer to a texture, bitmap entry, whose id is 0. Although the background defined is rectangular, the parts of the texture in this region that have the transparency colour will be treated as such. The second top level window named test2 does not use a texture for its background. It is rectangular and has a red background. In this way the script is flexible enough to define frames of any shape. A child frame would be nested within another frame as shown for the window element named child1. This child is not a top level child window (popup window), because it has an entry that says child= yes Additional Controls Script entries for other controls can be defined depending on the look of the particular control. Here is what an entry for a button would look like: <button name="button1"> <skin name="normal" left="105" top="59" width="19" height="29" bitmapid="0"/> <skin name="hover" left="104" top="99" width="20" height="29" bitmapid="0"/> <skin name="mousedown" left="104"top="139" width="20" height="28" bitmapid="0"/> <skin name="disabled" left="70" top="41" width="19" height="29" bitmapid="0"/> </button> The button script entry defines texture regions to be used for painting the button during its various states with pointers to appropriate textures. Many more controls such as sliders, list boxes, tree controls and animations can be defined in this way. An entry such as this can be embedded in a frame script entry where that control will be contained. 3.0 Creating a Skin Script Loading Library The skin loading library should be able to parse the script file and create the various controls defined within it. It should also manage texture resources. 3.1 The Skin Loader In an object oriented development environment the skin loader can be represented as an object. A new object can be instantiated for each different skin definition script. In this way the process of loading/reloading a skin at runtime consists of deleting a skin loader object if it already exists and creating a new instance for a newly specified script. This approach separates the user interface from the main application. The various controls can be assigned names that are understood by the application which interacts with the skin loader object to access handles to them. When the controls generate events, these can be routed to the application by the skin loader object. The skin loader should scan a specified location for skin definition scripts and keep a list of them. It should also present some sort of interface to allow users to switch skins, The skin switching interface is necessary only for applications that utilise multiple skins suited to different user tastes. Another function of the skin loader is to keep a list of textures that are defined by the currently loaded skin definition script. It should make appropriate use of available texture loading APIs.
3 Proper parsing of skin files and error recovery is essential. Errors can occur in many places. The first is in the syntactic structure of the XML script. This is usually handled by the XML parser. Errors should also be detected by the application as values are extracted from the various XML elements. Appropriate feedback should be given to users during the process of loading a skin definition script. 4.0 Designing Skin-able UI Controls This step involves creating controls from scratch or extending the functionality of existing non skin-able GUI components to be skin-able. If a control is represented as a class in an object oriented environment then there needs to be some common ancestor control class from which other controls can be derived. In Microsoft Windows this could be the CWnd MFC class and in KDE it could be the QWidget class. Existing controls such as frames, buttons and text displays in these systems are already designed well and can be extend to be skin-able. 4.1 Painting Controls The paint methods from existing GUI classes are overridden to make them paint themselves using textures, if this functionality is not already present in that class. Rectangular texture coordinates and texture ids obtained from the skin loader are used in the painting process. A transparent blting operation is performed to copy only the opaque regions of the texture to the control s display area. Thus even if the control is rectangular users perceive it as non rectangular since only the opaque areas are seen by them. textures, selection of texture regions and editing of the various parts of the skin definition script. 5.0 Multiple Skin Switcher Demo The test skin switching application shown on Figure 5.0 demonstrates the skin loading library constructed following the steps outlined in the preceding sections. It shows the ease with which the application can change from one form to another. Figure 5.1 shows a skin script editing application that makes the editing of skin scripts easy. 6.0 Conclusion Real world three dimensional objects such as audio players and digital cameras need not be represented using rectangular windows that use solid colours to paint themselves. They can instead use realistic textures for skinning themselves and present an intuitive user interface to users. Applications that have a skin-able, non-rectangular or rectangular user interface can be created by following these steps: Selecting an appropriate skin definition format. Creating a library for dynamically loading skin definition scripts. Creating controls that understand the entries in the scripts and skin themselves. Creating textures and a skin definition scripts to describe the required user interfaces. Figure 5.0 Multiple Skin Changer Demo Application Double buffering should be used for controls that paint themselves very often, to avoid the undesirable effect of screen flicker. 4.2 Skin Awareness by Controls Controls are represented as objects therefore each object should know how to skin itself given an XML element that represents itself. At script loading time the skin loader parses the XML file and creates controls as they are found in the script definition file. It also passes a control s XML element definition to that control. If the XML element passed to a control contains another element representing a control then the former control becomes the parent and the above process is repeated for the latter control. Figure 5.1 Skin Script Editing Environment 4.3 Creating Skins for Controls Once the skin loader engine and the various controls have been created then user interfaces for just about any application can be created. This process requires the use of a software package capable of creating textures for use as skins. GIMP [9] is a powerful open source paint package that can be used for this process. Once a drawing for an interface and its various components has been made by an artist, it can be inspected by interested parties for approval. A skin definition script can then be created. To make the process of creating skin definition scripts easier than having to type it out by hand, it is advisable to construct a development environment that allows loading of
4 Appendix A 1.0 Introduction This appendix presents some of the facilities available on the Win32 platform that enable the development of skinable UI components. 2.0 Painting and Drawing using the Win32 GDI Microsoft Windows is a message based system. Whenever a window owned by an application needs painting due to some event e.g. a user resizing the window or the window being covered by another, it receives messages that tell it to redraw affected areas. 2.1 Device Contexts Traditionally if an application wanted to produce pretty graphics on the screen, it would do so by accessing a graphic device s display memory and modifying it. This would cause changes to be observed on the screen. Window s is a multitasking environment with multiple applications. For the sake of efficient use of the graphic device, the system manages all drawing [7]. Every window has associated with it a GDC (Graphic Device Context). All drawing is directed to this GDC. HDC hdc = GetDC(hWnd); SetPixel(hdc, 10,10,RGB(255,0,0)); ReleaseDC(hWnd,hdc); Figure 2.1: Setting pixel (10, 10) to red on a window referenced by handle hwnd. When a window is created the system will return a handle, hwnd on Figure 2.1, for that window to the application. The application uses this handle to make drawings on the window. For example to change a pixel s colour in a window requires getting a handle to the window s device context, hdc on Figure 2.1, and then drawing to that device context as shown Off Screen Device Contexts Off screen device contexts are device contexts that are represented in memory. These allow drawings to be made in memory rather than on screen as is the case for device contexts associated with windows. There are two main benefits in using off screen DCs. The first is that an application can draw complex drawings only once into a memory DC and whenever it wants to redraw parts of itself it can simply copy the pre-drawn image from an off screen DC to its display DC, speeding up the drawing process. The second is it that it eliminates flicker while drawing which is common when modifying contents of a screen directly Creating off screen Device Contexts An off screen DC is an array of bits. The bitmap it stores must be of the same format as the screen DC if the bitmap is to be displayed correctly on the screen when the off screen DC is copied to the screen DC. An off screen DC is created as follows: HDC screendc = GetDC(hWnd); HDC offscreendc = CreateCompatableDC(screenDC); HBITMAP hbitmap = CreateComaptableBitmap( HBITMAP holdbitmap = SelectObject(offscreenDC,hbitmap); ReleaseDC(hWnd,screenDC); screendc,width,height); The first step is to create an off screen DC compatible to the screen DC then a bitmap of the desired height and width. For the bitmap to be useful it must be selected into the new off screen DC. Once selected Win32 places the restriction that it may not be reselected into any other device context. When a new device is selected into a device context with a SelectObject call the old bitmap previously associated with the dc is returned. The old bitmap is a one by one monochrome bitmap that gets associated to a device context at the time of the CreateCompatableDC call Deleting off screen Device Contexts Device contexts use memory. When the off screen DC is no longer required it and the bitmap selected into it must be freed as shown on Figure The original monochrome bitmap must be re selected into the off screen DC before the DC is deleted. hbitmap = DeleteObject(hbitmap); DeleteDC(offscreenDC); SelectObject(offscreenDC,holdbitmap); Figure Deleting an off screen device context 2.2 Bit to Bit transfer of blocks of bitmaps The contents of a DC can be transferred from one DC to another by using one of the bit block transfer functions rather than doing it manually by using a for loop and using GetPixel and SetPixel which would be a very slow operation. The BitBlt, StretchBlt and TransparentBlt functions implement this functionality in hardware where available. TransparentBlt is especially useful for implementing non rectangular controls in a window. 2.3 Loading images that use the Windows BMP format Applications can use the Win32 LoadImage function for loading bitmaps from a file on disk as follows: HBITMAP bitmap = LoadImage(hInstance,filename, IMAGR_BITMAP, width,height,lr_fromfile); It returns a handle to a bitmap which can be selected into a device context. Once this is done the bitmap can be manipulated as desired. The latest version of the platform SDK contains a new GDI interface, GDIPlus, which allows the loading of different image file formats such as JPG and PNG.
5 3.0 Non Rectangular Windows In win32 there are two methods for creating non-rectangular windows. The first is by using window regions and the second is a more recent addition to the win32 API, using layered windows. 3.1 Window Regions Regions are areas of a window that are defined by an application. There are three types rectangular, elliptical and polygonal. Rectangular regions can be defined as ordinary rectangles or those with rounded edges. Polygonal regions are the most interesting as they allow windows to have any polygonal shape Using Regions A number of region creation functions are provided by the win32 API some of which are listed on Figure All of these return a region handle which can be used for manipulating the region e.g. hit testing to see if a user clicked inside a region or not. HRGN hregion = CreateRectRgn(left,top,right,bottom); Creates a rectangular region hregion = CreateRoundRectRgn(left,top,right,bottom, xedge,yedge); Creates a rectangular region with rounded corners hregion = CreateEllipticRgn(left,top,right,bottom); Creates an elliptical region hregion = CreatePolygonRgn(points,pointCount,fillmode); Creates a polygonal region Figure Some of the win32 region creation functions A large number of operations can be performed on regions such as combining regions to form more complex ones and filling regions with a colour. When no longer required a region must be freed. This is done using the DeleteObject function call which is used to release acquired GDI objects. 3.2 Layered Windows The layered window functionality was introduced into win32 with the release of windows NT5. It introduces two new ways for painting windows. In addition to allowing transparency the API allows windows to have translucency. For a window to make use of layered window functionality it must add the WS_EX_LAYERED style to its extended window styles. This can be done in two ways: at window creation time or at run time as shown on Figure 3.2a. At window creation time hwnd = CreateWindowEx( WS_EX_LAYERED, clasname,windowname, WS_POPUP WS_VISIBLE, left,top, width, height, NULL,NULL, hinstance, NULL); At runtime SetWindowLong(hwnd, GWL_EXSTYLE, GetWindowLong(hwnd, GWL_EXSTYLE) WS_EX_LAYERED); Figure 3.2a Adding the WS_EX_LAYERED style to a window s extended styles Once a window has the WS_EX_LAYERED style added to its extended styles the applications can decide to use the layered window API in two ways. The first will let the application perform all drawing in its window by itself. The system will disable sending of all window paint messages to it. The second method will let the application paint itself in response to the win32 paint messages in the normal way. The first method is more efficient if an application modifies its entire window contents frequently. Figure 3.2b illustrates the two methods. Method 1: Disables normal paint messages and the application is responsible for all drawing at appropriate times. BLENDFUNCTION blend; blend.blendop = AC_SRC_OVER; blend.blendflags = 0; blend.alphaformat = 0; blend.sourceconstantalpha = balpha; UpdateLayeredWindow(hwnd, hscreendc, newscreenpos, newscreensize, offscreendc, imageposonscreendc, colorkey,&blend,ulw_alpha ULW_COLORKEY); Method 2: The Application paints its windows in response to the normal system paint messages. SetLayeredWindowAttributes(hWnd, colorkey, balpha, LWA_COLORKEY LWA_ALPHA); Figure 3.2b the two ways for using the layered window API. The source constant alpha value ranges from 0 for 100% transparent to 255 for opaque. An application, for example, can use this value to implement translucent menus of varying translucency. The colour key value is the value used to implement transparency. All bits in the window with that colour value will be treated as transparent by the system. This enables windows to assume any shape they like.
6 3.3 Which to use, Layered Windows or Regions? The layered window API is the preferred way of implementing applications that make use of non-rectangular windows. It is much more efficient than the region API which has no support for translucency at all. With regions complex shapes have to be defined by supplying individual points. Using layered windows is much simpler, all that is required is a bitmap with transparent areas set using a colour key value usually RGB(255,0,255). To make use of layered windows a more recent version of the platform SDK is required. The region API works on older windows 9x and NT systems and as well as the newer NT5. Regions can be used in both parent and child windows but the layered window API supports only parent windows. This is not a problem since non rectangular child windows can be simulated using the TransparentBlt function. References [1] Microsoft Windows XP Technical Overview, [2] Apple Aqua, [3] Wired GUIs Just Want to Have Fun, [4] BetaNews Skinning the Windows GUI, [5] StarDock WindowBlinds, [6] Microsoft Microsoft User Interface Design and Development, [7] Microsoft Windows GDI, [8] Microsoft Layered Windows, [9] GIMP Gnu Image Manipulation Program,
Custom Component Development Using RenderMonkey SDK. Natalya Tatarchuk 3D Application Research Group ATI Research, Inc
Custom Component Development Using RenderMonkey SDK Natalya Tatarchuk 3D Application Research Group ATI Research, Inc Overview Motivation Introduction to the SDK SDK Functionality Overview Conclusion 2
More informationFoxit Reader SDK. Programming Guide
Foxit Reader SDK For Windows and Linux Programming Guide Revision 1.4 Foxit Software Company 2005.12 Overview Features Tutorials Calling from Different Programming Languages Reference Redistribution Overview
More informationVersion 3 Media Guide
Version 3 Media Guide Contents: Introduction Features Guided Tour/ Screenshots What s New in Version 3.0 FAQ Specifications Introduction WindowFX is a special effects program for Windows that allows users
More informationHow to...create a Video VBOX Gauge in Inkscape. So you want to create your own gauge? How about a transparent background for those text elements?
BASIC GAUGE CREATION The Video VBox setup software is capable of using many different image formats for gauge backgrounds, static images, or logos, including Bitmaps, JPEGs, or PNG s. When the software
More informationOutput models Drawing Rasterization Color models
Output models Drawing Rasterization olor models Fall 2004 6.831 UI Design and Implementation 1 Fall 2004 6.831 UI Design and Implementation 2 omponents Graphical objects arranged in a tree with automatic
More informationChapter 3. Texture mapping. Learning Goals: Assignment Lab 3: Implement a single program, which fulfills the requirements:
Chapter 3 Texture mapping Learning Goals: 1. To understand texture mapping mechanisms in VRT 2. To import external textures and to create new textures 3. To manipulate and interact with textures 4. To
More informationOutput in Window Systems and Toolkits
Output in Window Systems and Toolkits Recap Low-level graphical output models CRTs, LCDs, and other displays Colors (RGB, HSV) Raster operations (BitBlt) Lines, curves, path model Fonts Affine Transforms
More informationPart 7 More fill styles and an effect
Part 7 More fill styles and an effect Introduction To break the uniformity of the grass fill style, this part will continue creating fill styles and adding sheets show how to copy fill styles show how
More informationTechnical Overview of the Picasso User Interface Management System
Technical Overview of the Picasso User Interface Management System Picasso is developed by the OECD Halden Reactor Project at the Institute for Energy Technology, Halden, Norway Picasso is presented on
More informationUsing Windows XP Visual Styles
Using Microsoft Windows XP, you can now define the visual style or appearance of controls and windows from simple colors to textures and shapes. You can control each defined part of a control as well as
More informationPSD to Mobile UI Tutorial
PSD to Mobile UI Tutorial Contents Planning for design... 4 Decide the support devices for the application... 4 Target Device for design... 4 Import Asset package... 5 Basic Setting... 5 Preparation for
More informationCS 160: Lecture 10. Professor John Canny Spring 2004 Feb 25 2/25/2004 1
CS 160: Lecture 10 Professor John Canny Spring 2004 Feb 25 2/25/2004 1 Administrivia In-class midterm on Friday * Closed book (no calcs or laptops) * Material up to last Friday Lo-Fi Prototype assignment
More informationDave s Phenomenal Maya Cheat Sheet The 7 Default Menus By Dave
Dave s Phenomenal Maya Cheat Sheet The 7 Default Menus By Dave Menu Set Hot Keys F2 F3 F4 F5 Animation Modeling Dynamics Rendering Transformation / Manipulator Hot Keys Q W E R T Y Select Tool Move Tool
More informationAdvanced High Graphics
VISUAL MEDIA FILE TYPES JPG/JPEG: (Joint photographic expert group) The JPEG is one of the most common raster file formats. It s a format often used by digital cameras as it was designed primarily for
More informationIII-6Exporting Graphics (Windows)
Chapter III-6 III-6Exporting Graphics (Windows) Overview... 96 Metafile Formats... 96 BMP Format... 97 PDF Format... 97 Blurry Images in PDF... 97 Encapsulated PostScript (EPS) Format... 97 SVG Format...
More informationRendering Grass with Instancing in DirectX* 10
Rendering Grass with Instancing in DirectX* 10 By Anu Kalra Because of the geometric complexity, rendering realistic grass in real-time is difficult, especially on consumer graphics hardware. This article
More informationComputer Graphics. Shadows
Computer Graphics Lecture 10 Shadows Taku Komura Today Shadows Overview Projective shadows Shadow texture Shadow volume Shadow map Soft shadows Why Shadows? Shadows tell us about the relative locations
More informationUI Elements. If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI)
UI Elements 1 2D Sprites If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI) Change Sprite Mode based on how many images are contained in your texture If you are
More informationPART TWO Designing The Energy Drink Can Label
PART TWO Designing The Energy Drink Can Label Part two of the design process involves the creating the label for the energy drink can with vector graphic techniques using Adobe Illustrator. While the creation
More informationMerits of QT for developing Imaging Applications UI
White Paper Merits of QT for developing Imaging Applications UI Amitkumar Sharma January 08, 2008 Trianz 2008 White Paper Page 1 Table of Contents 1.0 Executive Summary. ------------------------------------------------------------------------------------------------------------
More informationLesson 3 Creating and Using Graphics
Lesson What you will learn: how to delete a sprite and import a new sprite how to draw using the pen feature of Scratch how to use the pen up and pen down feature how to change the colour of the pen how
More informationExercise 7: Graphics and drawings in Linux
Exercise 7: Graphics and drawings in Linux Hanne Munkholm IT University of Copenhagen August 11, 2004 In this exercise, we will learn the basic use of two image manipulation programs: The GIMP
More informationMac OS-Windows Porting
Mac OS-Windows Porting Mindfire Solutions www.mindfiresolutions.com July 15, 2001 Abstract: This paper talks about hand on experiences of porting of applications, involving Mac and Windows, discussing
More informationSection 5. Pictures. By the end of this Section you should be able to:
Section 5 Pictures By the end of this Section you should be able to: Use the Clip Gallery Insert and Delete Pictures Import Pictures Move, Resize and Crop Pictures Add Borders and Colour Wrap Text around
More informationObject-Oriented Programming
iuliana@cs.ubbcluj.ro Babes-Bolyai University 2018 1 / 33 Overview 1 2 3 4 5 6 2 / 33 I Qt is a cross-platform application and UI framework in C++. Using Qt, one can write GUI applications once and deploy
More informationPaint Tutorial (Project #14a)
Paint Tutorial (Project #14a) In order to learn all there is to know about this drawing program, go through the Microsoft Tutorial (below). (Do not save this to your folder.) Practice using the different
More informationeswt Requirements and High-Level Architecture Abstract Document Information Change History
eswt Requirements and High-Level Architecture Abstract There is a need for a standardized UI API fit for embedded devices having fewer resources and smaller screen sizes than a desktop computer. The goal
More informationThis is the vector graphics "drawing" technology with its technical and creative beauty. SVG Inkscape vectors
1 SVG This is the vector graphics "drawing" technology with its technical and creative beauty SVG Inkscape vectors SVG 2 SVG = Scalable Vector Graphics is an integrated standard for drawing Along with
More informationUsing Flash Animation Basics
Using Flash Contents Using Flash... 1 Animation Basics... 1 Exercise 1. Creating a Symbol... 2 Exercise 2. Working with Layers... 4 Exercise 3. Using the Timeline... 6 Exercise 4. Previewing an animation...
More informationSparklet Embedded GUI Library User Manual
1 E M B I E N T E C H N O L O G I E S Sparklet Embedded GUI Library User Manual Embien Technologies No 3, Sankarapandian Street, Madurai, India 625017 www.embien.com 2 3 Table of Contents 1 Introduction...
More informationVirtual MODELA USER'S MANUAL
Virtual MODELA USER'S MANUAL Virtual MODELA is a program that simulates the movement of the tool on the screen. Contents Contents Part 1 Introduction 1-1 System Requirements... 4 1-2 Overview of Virtual
More informationBuilding your own BMC Remedy AR System v7 Applications. Maruthi Dogiparthi
Building your own BMC Remedy AR System v7 Applications Maruthi Dogiparthi Agenda Introduction New Goodies Navigation, tree widgets Data Visualization Plug-in framework Development Guidelines Tools BMC
More informationEUROPEAN COMPUTER DRIVING LICENCE / INTERNATIONAL COMPUTER DRIVING LICENCE IMAGE EDITING
EUROPEAN COMPUTER DRIVING LICENCE / INTERNATIONAL COMPUTER DRIVING LICENCE IMAGE EDITING The European Computer Driving Licence Foundation Ltd. Portview House Thorncastle Street Dublin 4 Ireland Tel: +
More informationAdaptive Point Cloud Rendering
1 Adaptive Point Cloud Rendering Project Plan Final Group: May13-11 Christopher Jeffers Eric Jensen Joel Rausch Client: Siemens PLM Software Client Contact: Michael Carter Adviser: Simanta Mitra 4/29/13
More informationOpen GL Framework For A Computer Graphics Course
Open GL Framework For A Computer Graphics Course Programmer: Daniel Odle Sponsor / Advisor: Dr. Morse University of Evansville 4-26-03 Table of Contents Introduction 3 Statement of Problem 3 Design Approach
More informationAbstract. Eye Catching Made Easy
Abstract Eye Catching Made Easy By Francis Lamotte Chrom ART Accelerator Opens New Graphics Possibilities for GUI in Microcontroller Applications Thanks to the ease of implementing touch sensing and the
More informationGetting Started with Macromedia Flash p. 1 Introducing the Development Environment p. 1 Tools Panel p. 2 Properties Panel p. 2 Timeline p.
Acknowledgments p. viii Introduction p. xxv Getting Started with Macromedia Flash p. 1 Introducing the Development Environment p. 1 Tools Panel p. 2 Properties Panel p. 2 Timeline p. 3 Keyframes and Animation
More informationNEXT-GENERATION MATRIX 3D IMMERSIVE USER INTERFACE [ M3D-IUI ] H Raghavendra Swamy AMD Senior Software Engineer
NEXT-GENERATION MATRIX 3D IMMERSIVE USER INTERFACE [ M3D-IUI ] H Raghavendra Swamy AMD Senior Software Engineer SESSION AGENDA Quick Keywords Abstract and Scope Introduction Current User Interface [ UI
More informationLet s Make a Front Panel using FrontCAD
Let s Make a Front Panel using FrontCAD By Jim Patchell FrontCad is meant to be a simple, easy to use CAD program for creating front panel designs and artwork. It is a free, open source program, with the
More informationSignGO Pro // SignGO Lite Features Listing
SignGO Pro // SignGO Lite Features Listing Features Design Text Entry SignGO Lite SignGO Pro Artistic Text Text On Arc Text On Path Frame Text AutoMerge Script Drawing Shape drawing Freehand drawing Logos
More informationGUI Output. Adapted from slides by Michelle Strout with some slides from Rick Mercer. CSc 210
GUI Output Adapted from slides by Michelle Strout with some slides from Rick Mercer CSc 210 GUI (Graphical User Interface) We all use GUI s every day Text interfaces great for testing and debugging Infants
More informationDeveloping the Roadmap - Director Next Survey
Developing the Roadmap - Director Next Survey Section 1: How do you use Director? 1. My primary use of Director is (select one only): Desktop Application Development Rich Internet Application (RIA) Development
More informationGame Programming with. presented by Nathan Baur
Game Programming with presented by Nathan Baur What is libgdx? Free, open source cross-platform game library Supports Desktop, Android, HTML5, and experimental ios support available with MonoTouch license
More informationDefinition. Blending & Compositing. Front & Back Buffers. Left & Right Buffers. Blending combines geometric objects. e.g.
Blending & Compositing COMP 3003 Autumn 2005 Definition Blending combines geometric objects e.g. transparency Compositing combines entire images multi-pass textures accumulating results Both depend on
More informationLinkMotion and CorelDraw 9, 10, 11, 12, X3, X4, X5, X6, X7 and X8:
LinkMotion and CorelDraw 9, 10, 11, 12, X3, X4, X5, X6, X7 and X8: After you install LinkMotion software and set up all settings launch CorelDraw software. Important notes: Solustan s LinkMotion driver
More informationGenerating Vectors Overview
Generating Vectors Overview Vectors are mathematically defined shapes consisting of a series of points (nodes), which are connected by lines, arcs or curves (spans) to form the overall shape. Vectors can
More informationComputer Graphics 10 - Shadows
Computer Graphics 10 - Shadows Tom Thorne Slides courtesy of Taku Komura www.inf.ed.ac.uk/teaching/courses/cg Overview Shadows Overview Projective shadows Shadow textures Shadow volume Shadow map Soft
More information5Using Drawings, Pictures. and Graphs. Drawing in ReportSmith. Chapter
5Chapter 5Using Drawings, Pictures Chapter and Graphs Besides system and custom report styles, ReportSmith offers you several means of achieving variety and impact in your reports, by: Drawing objects
More informationFall UI Design and Implementation 1
Fall 2004 6.831 UI Design and Implementation 1 1 Source: UI Hall of Shame Fall 2004 6.831 UI Design and Implementation 2 Our Hall of Shame candidate for the day is this interface for choose how a list
More informationRenderMonkey SDK Version 1.71
RenderMonkey SDK Version 1.71 OVERVIEW... 3 RENDERMONKEY PLUG-IN ARCHITECTURE PHILOSOPHY... 3 IMPORTANT CHANGES WHEN PORTING EXISTING PLUG-INS... 3 GENERAL... 4 GENERATING A RENDERMONKEY PLUG-IN FRAMEWORK...
More informationInfoPower Support - Complete Integration with the superb InfoPower multi-record controls such as InfoPower s vertical and horizontal grid controls.
1 s t C l a s s S t u d i o B e r l i n - P a g e 1 Information on 1stClass Studio 10.2 Tokyo Woll2Woll Software March 24th, 2017 http://www.woll2woll.com 1stClass Studio 10.2 Tokyo 1stClass provides the
More informationTo build shapes from scratch, use the tools are the far right of the top tool bar. These
3D GAME STUDIO TUTORIAL EXERCISE #5 USE MED TO SKIN AND ANIMATE A CUBE REVISED 11/21/06 This tutorial covers basic model skinning and animation in MED the 3DGS model editor. This exercise was prepared
More informationRENDERING TECHNIQUES
RENDERING TECHNIQUES Colors in Flash In Flash, colors are specified as numbers. A color number can be anything from 0 to 16,777,215 for 24- bit color which is 256 * 256 * 256. Flash uses RGB color, meaning
More informationHow to create shapes. Drawing basic shapes. Adobe Photoshop Elements 8 guide
How to create shapes With the shape tools in Adobe Photoshop Elements, you can draw perfect geometric shapes, regardless of your artistic ability or illustration experience. The first step to drawing shapes
More informationBuffers, Textures, Compositing, and Blending. Overview. Buffers. David Carr Virtual Environments, Fundamentals Spring 2005 Based on Slides by E.
INSTITUTIONEN FÖR SYSTEMTEKNIK LULEÅ TEKNISKA UNIVERSITET Buffers, Textures, Compositing, and Blending David Carr Virtual Environments, Fundamentals Spring 2005 Based on Slides by E. Angel Compositing,
More informationJavaFX Technology Building GUI Applications With JavaFX - Tutorial Overview
avafx Tutorial Develop Applications for Desktop and Mobile Java FX 2/10/09 3:35 PM Sun Java Solaris Communities My SDN Account Join SDN SDN Home > Java Technology > JavaFX Technology > JavaFX Technology
More informationCore Graphics and OpenGL ES. Dr. Sarah Abraham
Core Graphics and OpenGL ES Dr. Sarah Abraham University of Texas at Austin CS329e Fall 2018 Core Graphics Apple s vector-drawing framework Previously known as Quartz or Quartz2D Includes handling for:
More informationHardware Accelerated Graphics for High Performance JavaFX Mobile Applications
Hardware Accelerated Graphics for High Performance JavaFX Mobile Applications Pavel Petroshenko, Sun Microsystems Jan Valenta, Sun Microsystems Jerry Evans, Sun Microsystems Goal of this Session Demonstrate
More informationHands-On Workshop: 3D Automotive Graphics on Connected Radios Using Rayleigh and OpenGL ES 2.0
Hands-On Workshop: 3D Automotive Graphics on Connected Radios Using Rayleigh and OpenGL ES 2.0 FTF-AUT-F0348 Hugo Osornio Luis Olea A P R. 2 0 1 4 TM External Use Agenda Back to the Basics! What is a GPU?
More informationData Representation From 0s and 1s to images CPSC 101
Data Representation From 0s and 1s to images CPSC 101 Learning Goals After the Data Representation: Images unit, you will be able to: Recognize and translate between binary and decimal numbers Define bit,
More informationAccelerating Realism with the (NVIDIA Scene Graph)
Accelerating Realism with the (NVIDIA Scene Graph) Holger Kunz Manager, Workstation Middleware Development Phillip Miller Director, Workstation Middleware Product Management NVIDIA application acceleration
More informationVisual HTML5. Human Information Interaction for Knowledge Extraction, Interaction, Utilization, Decision making HI-I-KEIUD
Visual HTML5 1 Overview HTML5 Building apps with HTML5 Visual HTML5 Canvas SVG Scalable Vector Graphics WebGL 2D + 3D libraries 2 HTML5 HTML5 to Mobile + Cloud = Java to desktop computing: cross-platform
More informationChapter Answers. Appendix A. Chapter 1. This appendix provides answers to all of the book s chapter review questions.
Appendix A Chapter Answers This appendix provides answers to all of the book s chapter review questions. Chapter 1 1. What was the original name for the first version of DirectX? B. Games SDK 2. Which
More informationA 2D Game Engine Using Bitmaps
A 2D Game Engine Using Bitmaps Rahul Deore 1, Prathamesh Mujumdar 2, Rohan Gulik 3, Prof. Savita Sangam 4 1 Rahul.deore@hotmail.com, 2 prathamesh.22@gmail.com, 3 rohan.gulik@hotmail.com, 4 savita.sangam@gmail.com
More informationPowerPoint 2016 Advanced for Windows
1 PowerPoint 2016 Advanced for Windows PowerPoint 2016 Advanced for Windows Training Objective To learn advanced features of PowerPoint 2016 in order to create more elaborate presentations. What you can
More informationBASICS OF MOTIONSTUDIO
EXPERIMENT NO: 1 BASICS OF MOTIONSTUDIO User Interface MotionStudio combines draw, paint and animation in one easy easy-to-use program gram to save time and make work easy. Main Window Main Window is the
More informationFactoryLink 7. Version 7.0. Client Builder Reference Manual
FactoryLink 7 Version 7.0 Client Builder Reference Manual Copyright 2000 United States Data Corporation. All rights reserved. NOTICE: The information contained in this document (and other media provided
More informationLecture 6: Output. Fall UI Design and Implementation 1
Lecture 6: Output Fall 2006 6.831 UI Design and Implementation 1 1 UI Hall of Fame or Shame? Fall 2006 6.831 UI Design and Implementation 2 This is Ghostview, a Unix program that displays Postscript files.
More informationRendering & Project Management. Dillon Courts Sandy Natarajan Spencer Balogh Do Young Park
Rendering & Project Management Dillon Courts Sandy Natarajan Spencer Balogh Do Young Park PLAYBLAST PlayBlast is a short cut to check the time and frame speed of your animation before creating the final
More information07 Animation. Multimedia Systems. Image Sequence, Interpolation
Multimedia Systems 07 Animation Image Sequence, Interpolation Imran Ihsan Assistant Professor, Department of Computer Science Air University, Islamabad, Pakistan www.imranihsan.com Lectures Adapted From:
More informationTutorial 17: Using Visual Image
Tutorial 17: Using Visual Image What follows is a brief introduction to Visual Image. This tutorial does not attempt to touch on all of the capabilities of the software. Instead, it steps through a simple
More informationIntroduction. QuickStart and Demo Scenes. Support & Contact info. Thank you for purchasing!
RELEASE NOTES V.4.1 / JUNE.2017 Contents Introduction... 3 QuickStart and Demo Scenes... 3 Support & Contact info... 3 How to use the asset in your project... 4 Custom Editor Properties... 4 Grid Configuration:...
More informationAdobe Photoshop Sh S.K. Sublania and Sh. Naresh Chand
Adobe Photoshop Sh S.K. Sublania and Sh. Naresh Chand Photoshop is the software for image processing. With this you can manipulate your pictures, either scanned or otherwise inserted to a great extant.
More informationImpress Guide. Chapter 1 Introducing Impress
Impress Guide Chapter 1 Introducing Impress Copyright This document is Copyright 2005 2009 by its contributors as listed in the section titled Authors. You may distribute it and/or modify it under the
More informationPixelSurface a dynamic world of pixels for Unity
PixelSurface a dynamic world of pixels for Unity Oct 19, 2015 Joe Strout joe@luminaryapps.com Overview PixelSurface is a small class library for Unity that lets you manipulate 2D graphics on the level
More informationNot For Sale. Glossary
Glossary Actor A sprite and the role it plays as it interacts with another sprite on the stage. Animated GIF A graphic made up of two or more frames, each of which is displayed as an automated sequence
More informationIntroduction to Computer Graphics (CS602) Lecture No 03 Graphics Systems
Introduction to Computer Graphics (CS602) Lecture No 03 Graphics Systems 3.1 Raster-Scan Systems Interactive raster graphics systems typically employ several processing units. In addition to the CPU, a
More information<Insert Picture Here> JavaFX Overview April 2010
JavaFX Overview April 2010 Sébastien Stormacq Sun Microsystems, Northern Europe The following is intended to outline our general product direction. It is intended for information
More informationCreating Buttons and Pop-up Menus
Using Fireworks CHAPTER 12 Creating Buttons and Pop-up Menus 12 In Macromedia Fireworks 8 you can create a variety of JavaScript buttons and CSS or JavaScript pop-up menus, even if you know nothing about
More informationTemplate Graphics Guidelines
Contents Page Overview 1 Screensaver Formats 1 Pop-Up Formats 2 Ticker Formats 3 Banner Formats 3 Web Page Formats 4 Edge Transparency Not Supported 5 Graphics Files 5 Bitmap vs Vector 6 Bitmap Pixellation
More informationCS488. Visible-Surface Determination. Luc RENAMBOT
CS488 Visible-Surface Determination Luc RENAMBOT 1 Visible-Surface Determination So far in the class we have dealt mostly with simple wireframe drawings of the models The main reason for this is so that
More informationCollege of Pharmacy Windows 10
College of Pharmacy Windows 10 Windows 10 is the version of Microsoft s flagship operating system that follows Windows 8; the OS was released in July 2015. Windows 10 is designed to address common criticisms
More informationChapter 2 Operating-System Structures
This chapter will discuss the following concepts: 2.1 Operating System Services 2.2 User Operating System Interface 2.3 System Calls 2.4 System Programs 2.5 Operating System Design and Implementation 2.6
More informationThe Application Stage. The Game Loop, Resource Management and Renderer Design
1 The Application Stage The Game Loop, Resource Management and Renderer Design Application Stage Responsibilities 2 Set up the rendering pipeline Resource Management 3D meshes Textures etc. Prepare data
More informationOpenGL View Library. Supervised by: Martin Madaras
View Adam Riečický Supervised by: Martin Madaras Faculty of Mathematics, Physics and Informatics Comenius University in Bratislava Bratislava/Slovakia Abstract In the paper, we propose a library for the
More informationStanford CS193p. Developing Applications for ios. Spring CS193p. Spring 2016
Stanford Developing Applications for ios Today Views Custom Drawing Demo FaceView Views A view (i.e. UIView subclass) represents a rectangular area Defines a coordinate space For drawing And for handling
More informationRenderize Live Overview
Renderize Live Overview The Renderize Live interface is designed to offer a comfortable, intuitive environment in which an operator can create projects. A project is a savable work session that contains
More informationWork with Shapes. Concepts CHAPTER. Concepts, page 3-1 Procedures, page 3-5
3 CHAPTER Revised: November 15, 2011 Concepts, page 3-1, page 3-5 Concepts The Shapes Tool is Versatile, page 3-2 Guidelines for Shapes, page 3-2 Visual Density Transparent, Translucent, or Opaque?, page
More informationRenderMonkey 1.6. Natalya Tatarchuk ATI Research
RenderMonkey 1.6 Natalya Tatarchuk ATI Research Game Developer Conference, San Francisco, CA, March 2005 Overview > What is RenderMonkey? > What s New In RenderMonkey 1.6? 2 What is RenderMonkey? > Shader
More informationCS 4300 Computer Graphics
CS 4300 Computer Graphics Prof. Harriet Fell Fall 2011 Lecture 8 September 22, 2011 GUIs GUIs in modern operating systems cross-platform GUI frameworks common GUI widgets event-driven programming Model-View-Controller
More informationsnocad-x user guide version b
snocad-x user guide version 1.0.3.b www.grafsnowboards.com Introduction snocad-x is an interactive application with which you can design all sorts of boardsports equipment. The main features are intended
More informationBMP file format. Contents. Pixel storage. The BMP file format, sometimes called bitmap. or DIB file format (for device-independent
1 of 7 BMP file format From Wikipedia, the free encyclopedia Windows Bitmap The BMP file format, sometimes called bitmap File extension:.bmp or.dib or DIB file format (for device-independent MIME type:
More informationUI, Graphics & EFL. Carsten Haitzler Principal Engineer Samsung Electronics Korea Founder/Leader Enlightenment / EFL
UI, Graphics & EFL Carsten Haitzler Principal Engineer Samsung Electronics Korea c.haitzler@samsung.com Founder/Leader Enlightenment / EFL Display System Overview Graphics 4 Graphics Old-School FB 5 In
More informationHUNT ENGINEERING Imaging with FPGA Demo/Framework
HUNT ENGINEERING Chestnut Court, Burton Row, Brent Knoll, Somerset, TA9 4BP, UK Tel: (+44) (0)1278 760188, Fax: (+44) (0)1278 760199, Email: sales@hunteng.co.uk www.hunteng.co.uk www.hunt-dsp.com HUNT
More informationThere we are; that's got the 3D screen and mouse sorted out.
Introduction to 3D To all intents and purposes, the world we live in is three dimensional. Therefore, if we want to construct a realistic computer model of it, the model should be three dimensional as
More informationPl_Editor. August 24, 2017
Pl_Editor Pl_Editor ii August 24, 2017 Pl_Editor iii Contents 1 Introduction to Pl_Editor 2 2 Pl_Editor files 2 2.1 Input file and default title block........................................ 2 2.2 Output
More informationINKSCAPE BASICS. 125 S. Prospect Avenue, Elmhurst, IL (630) elmhurstpubliclibrary.org. Create, Make, and Build
INKSCAPE BASICS Inkscape is a free, open-source vector graphics editor. It can be used to create or edit vector graphics like illustrations, diagrams, line arts, charts, logos and more. Inkscape uses Scalable
More informationInkscape tutorial: Donate button
Inkscape tutorial: Donate button By: Very Simple Designs (BDT466) Web Site: http://verysimpledesigns.com/vectors/inkscape-tutorial-donate-button.html This Inkscape beginner tutorial teaches the viewer
More informationInsight: Measurement Tool. User Guide
OMERO Beta v2.2: Measurement Tool User Guide - 1 - October 2007 Insight: Measurement Tool User Guide Open Microscopy Environment: http://www.openmicroscopy.org OMERO Beta v2.2: Measurement Tool User Guide
More informationMotic Images Plus 3.0 ML Software. Windows OS User Manual
Motic Images Plus 3.0 ML Software Windows OS User Manual Motic Images Plus 3.0 ML Software Windows OS User Manual CONTENTS (Linked) Introduction 05 Menus and tools 05 File 06 New 06 Open 07 Save 07 Save
More information