On the first day of the National Day holiday today, I went out to find something to eat when I was bored. I came to the company as soon as I turned around. It was so nice to be alone.
Let's take a look at N3 over the past few days. The work is still on schedule.
After reading the author's blog, there are new things:
Bytes ------------------------------------------------------------------------------------------------------------------------
I finally took the time to package a new N3 SDK. I will upload it when I return to the office on Monday, and there is a general list here. A lot of underlying things have changed, so I have to remove some nice foreground features (for example, after implementing a multi-threaded Renderer, N2 role rendering must be deleted, and the shader lighting code will go wrong ). I will consider these foreground features in the next release version.
Overview
- Some modifications made to be compatible with the nebula2 code mainly affect the macro names (declareclass-> _ declareclass, implementsingleton-> _ implementsingleton etc ...)
- Start to delete # ifndef/# define/# endif macros that prevent repeated include, because almost all compilers (vstudio, GCC, codewarrior) Support # pragma once
- Move the same Win32 and xbox360 codes to a common win360 namespace to eliminate code redundancy.
- Added a new toolkit layer, which contains some export tools and auxiliary classes.
- Added and sorted out some doxygen (documentation) pages
Compilation System
- The structure of the vstudio solution is reorganized so that all dependent projects are in one solution, so that you no longer need to open multiple vstudio at the same time.
- Now you can use the. EPK compilation script to import the vstudio Project (useful for projects not in the nebula3 SDK directory)
- The new "projectinfo. xml" file defines the unique properties of the project and platform for some useful export tools.
- Split the export.zip file into an independent platform-independent file and file (export.zip contains all platform-independent files, including export_win32.zip, export_xbox360.zip, and export_wii.zip)
- Add a unified multi-platform support to asset-pipeline (such as "msbuild/P: Platform = xbox360" to generate xbox360)
- A new command line generation tool (with code ):
- Audiobatcher3.exe (Packaging audio Export)
- Texturebatcher3.exe (Packaging texture Export)
- Shaderbatcher3.exe (encapsulated with shader compilation)
- Buildresdict.exe (generate a resource dictionary file)
- This tool is only used to call its generation tool (such as xactbld3.exe, nvdxt.exe, and other generation tools under commands)
- Note that public N3-SDK contains only Win32 platform support for legal reasons
Base Layer
- Fixed the bug where core: refcounted and util: proxy reference counting thread is not secure.
- Add the weakptr <> class to better process circular references.
- Add the type conversion method to PTR <>.
- Simplified system: byteorder class Interface
- Add the task-oriented "virtual CPU core ID" (such as mainthreadcode, renderthreadcore, etc.) related to the platform ...)
- Add a system: systeminfo class
- Add threading: threadid type and threading: thread: getmythreadid () Static Method
- Now we can see the inherent name of the thread in the vstudio debugger and other height tools.
- Setthreadidealprocessor () is now used to allocate threads to available CPU cores on the Win32 platform
- The HTTP debugging page of The New thread subsystem (now only list the active threads of nebula3)
- Minidump support: crash, n_assert () and n_error () are now generating minidump files on the Win32 platform
- The new debug subsystem is used for code analysis:
- Debugtimer and debugcounter objects are provided.
- The HTTP debugging page allows you to check debugtimers and debugcounters at runtime.
- New Memory: memorypool class to allocate memory blocks of the same size (speeding up the allocation and reducing memory fragments)
- Math: some new and renamed methods in matrix44
- The HTTP subsystem is now running in its own thread
- Add SVG support to the HTTP subsystem (http: svgpagewriter and http: svglinechartwriter) (xoyojank: Is it Scalable Vector Graphics? In this case, the chart can be output)
- Added IO: excelxmlreader stream reading class, which allows reading MS Excel spreadsheet files in XML mode.
- In messaging: asyncport, a behavior method is added to define how the processing thread waits for new messages:
- Waitformessage: Blocking until the message arrives
- Waitformessageortimeout: the message is blocked until it reaches or times out.
- Donotwait: Do not wait for messages
- Add to remote sub-system, allow remote control of N3 application through TCP/IP connection
Rendering Layer
- The rendering is moved to its own thread (the internalgraphics subsystem is on the rendering thread side, and the graphics frontend subsystem is on the main thread side)
- Added coreanimation and animation subsystems (constructor)
- Added the UI sub-system (constructor) (xoyojank: This is good ^_^) for a simple user interface)
- Add coreaudio and audio subsystems (constructor ):
- Coreaudio is in the background and runs in its own thread
- Audio is the frontend "client" and runs in the main thread (or any other thread)
- Xact Concept Design
- Provide xact packaging implementation
- Added CoreGraphics: textrenderer and CoreGraphics: shaperenderer class, which is intended for rendering debugging information
- Add to the debug rendering subsystem (now in the debug namespace)
- Frame subsystem: frameposteffect may also include framebatch
- Input subsystem: disconnect the xinput gamepad interface. Currently, the connected device is detected every 0.5 seconds.
- Resources subsystem: add the resourceallocator/resourcelump system to prepare for the real resource stream of the console Platform
Application Layer and plug-ins:
- Corefeature is deleted (this item has to go to the gameapplication class to prevent egg issues)
- Add networkfeature (constructor)
- Add uifeature (constructor)
- Add the corenetwork and multiplayer plug-ins (raknet packaging)