------------ SRGP Library ------------ Project Name: BF533srgp.dpj Project Type: ADSP-BF533 [X] ADSP-BF537 [ ] ADSP-BF561 [ ] Hardware Used: ADSP-BF533 EZ-Kit VisualDSP++ Emulator System Services Components Used: N/A --------- OVERVIEW --------- This project builds the SRGP library, which Analog Devices has ported to the ADSP-BF533 Blackfin processor. The Simple Raster Graphic Package (SRGP) is demonstrated in such applications as the one found in the folder: "BlackfinSDK/Multimedia/SRGP". SRGP is an open source graphics package, developed at Brown University. It is available at: 'http://www.cs.brown.edu/software'. An accompanying text book: "Computer Graphics: Principles and Practice" is helpful in understanding SRGP. The code has been modified, in some cases extensively, to use the 'adi_graph' library. Applications that use the SRGP library will link to the saved SRGP library, located in the "BlackfinSDK/Lib" folder. The source directory structure for the SRGP library is found in this folder. NOTE: The output from this build will NOT overwrite the library kept in "BlackfinSDK/Lib". It will be output to the './Debug' or './Release' directory, accordingly, and must be MANUALLY copied to the "BlackfinSDK/Lib" folder, or wherever the application's link search path expects to find it. The "d" suffix typically indicates a library built with debug configuration. This suffix must be appended MANUALLY. This ensures that the user will not accidentally overwrite the original working version of the library. ----------------------- Building the Library ----------------------- 1) In VisualDSP Load the Project "BF533srgp.dpj". 2) Select "Project->Rebuild Project" 3) Copy the output ('libsrgp533.dlb') to the application's link search path, appending a 'd' when building for debug. NOTE: The SRGP tracing and debugging macros inserted into various places in the code will produce compiler warnings, which may be disregarded. -------------------------------------- LIMATIONS, AND NOTEWORTHY BEHAVIORS -------------------------------------- SRGP was developed by Brown University and it owns the copyright. Details concerning its use can be found in COPYING_POLICY.TXT. GENERAL Writing a single "pixel" will in fact write to both the even and odd frames of the interlaced display, to prevent screen flicker. This behavior can be changed by modifying the file 'adi_graph_driver.c' and then rebuilding the adi_graph library. LINES, PATTERNS AND FILLS Pixmaps interfaces are not supported. SRGP_setWriteMode() is not supported and all writes will behave as WRITE_REPLACE. SRPG_setLineWidth() is not suppored. SRGP_setLineStyle() *is* available, as is SRGP_setFillStyle() (except the PIXMAP_PATTERN style as noted above). SRGP_setFillBitmapPattern() is supported for rectangles only. POLYGONS SRGP_fillPolygon() is not supported. FONTS SRPG's SRGP_loadFont() API is unavailable. Instead, SRGP_ADI_loadFont() is provided. This is because SRGP_loadFont() looks up by name (char*), requiring every font to linked into the program because the fonts actually required cannot be determined at build-time. SRGP_ADI_loadFont() "looks up" by symbol name, allowing the linker to eliminate fonts not specifically referenced by callers. The symbol names for support fonts can be found in the include file 'adi_graph_font_decls.h' located in "BlackfinSDK/Include/adi_graph/fonts". COLORS SRGP_loadCommonColor() is supported, but be aware that its use will link in a rather large data section into your program (~4KB). Loading a new color into an existing entry into color table with SRGP_loadColor() will not cause existing "instances" of the old color to be swapped with the new. Thus, color table "flicker/flash" effects and the link cannot be done using this technique. Conversely, only a very small color table is needed to support an arbitrary number of colors, and new colors can overwrite existing colors without effecting already-rendered pixels. ELLIPSES AND ARC All 360 degree of ellipses are always drawn. All startangle and endangle parameters are ignored. SRGP_setLineStyle() will have not effect on ellipses. Ellipse will always be drawn as if the line style were CONTINUOUS. KEYBOARD, POINTER, AND BEEP None of these interfaces are supported. ------------------------------------- Files required to build this Library ------------------------------------- The files required to build the library are located in the following key subdirectories: "../include" - include files, specific to the SRGP library build. "../../../Include/SRGP" - global include fles. Any project using SRGP should specify this include path to the compiler (-I directories). "../../../Lib" - libsrgp.dlb or libsrgpd.dlb. The SRGP library should be MANUALLY copied to this location. The "d" suffix is added to indicate that this version was built using the VisualDSP++ "Debug" configuration (no optimizations, includes debugging information). One of these libraries (debug or release version) must be linked with the application program, to produce the final executable. "../src" - Source files to build the SRGP library.