Changed the channel used by HIO from 0 to 4 for formal Viewer communications.
Operations when switching displayed animations were changed in the following ways.
In addition, when switching a group, the frame is not changed. (Before it had been set to frame 0.)
When panes included in the selected group did not have an animation, their names are now displayed in gray.
When the group is registered as a related group in the animation segment tag, an asterisk is now displayed next to the name.
Added support for animation sharing.
Changed the channel used by HIO from 0 to 4 for formal Viewer compatibility.
Where access restrictions for class members were private, changed those to protected.
However, since there was no indication in the reference manual, and it is not intentional for users to uses members functions and variables that are marked as :private in the header, the feature was changed and there was a deletion without denoting that in the Revision History.
AnimTransformBasic Class
template<>Bind function -- Moved to the header.
ArcResourceAccessor Class
GetTextureContainer function
GetFontContainer function
FontContainer Class
FindFontByKey function
MultiArcResourceAccessor Class
GetTextureContainer function
GetFontContainer function
TextureContainer Class
FindTextureByKey function
In the Time Scale Adjustment Dialog, the value for the starting points for the operation segment and the scale method could only be set as high as 100. This has been fixed.
In the rendering by Drawer, the texture cache was not cleared adequately. This bug has been fixed.
The frame of the Window pane would be drawn in the location of subsequent panes. That problem has been fixed.
This problem occurred when the Window pane content or the texture used between frames differed, but the texture used by the frame and the subsequent pane were the same.
A feature has been added to the Export Binary File dialog for setting controls for keys.
The settings for transfer destination during preview can now be saved in the layout file.
Added the --omit-nokey-all option to the binary converter.
This is effective in keeping the size of the animation data small.
When there is no key in the frame segment specified with the animation segment tag, no animation data is output.
This option is enabled when the -g option is specified.
The following features have been added to the Simple Viewer
(Settings are saved in %NW4C_ROOT%\tools\LayoutViewer\setting.ini.)
In addition, the following changes were made.
Defined the NW_LYT_DMPGL_ENABLED macro in lyt_Config.h.
If this definition is ignored, features utilizing DMPGL are removed.
By default, definitions are enabled.
When NULL was passed as the second argument for nw::lyt::Initialize(), it stopped with an exception. This was changed to stop with an ASSERT.
When the NW_LYT_DMPGL_ENABLED macro in undefined in lyt_Config.h, the following APIs are deleted from the library.
Bounding Class
Layout Class
Pane Class
Picture Class
TextBox Class
Window Class
Fixed the bug that caused hang ups when a group without any animation was selected.
There was a bug that caused a link error when calling the nw::font::RectDrawer::GetVertexBufferData() of the character drawing library. This bug has been fixed.
Fixed the bug that cased resource accessors of the ArcResourceAccessor and MultiArcResourceAccessor class to not record textures attained from archives.
This bug occurred from NW4C-1.1.0.
Because an archive search is generated each time texture is requested, Layout::CreateAnimTransform() and texture pattern animation execution speeds are decreased.
This occurs when Layout::SetLayoutDrawEnable() is set to false. This setting status is the default.
Because the texture is always determined to be in DIRTY status, texture coordination calculations are not performed for each rendering even for textures without SRT transformations.
A bug has been fixed where the Viewer screen flickers if the frame rate is set to 20 fps or 30 fps when running under Windows 7.
A feature has been added to the Export Binary File dialog for setting controls for keys.
Improved the way thumbnails display in the Texture window.
Added a feature to Vertex Color editing that enables the colors of two vertices to be edited at the same time.
When you press the Shift key when opening/closing a node, all nodes below that node are opened/closed at the same time.
Added a feature for sending layouts using HostIO to the simple layout viewer for the actual hardware.
To start the simple layout viewer, execute %NW4C_ROOT%\tools\LayoutEditor\LayoutViewer.bat
With LayoutEditor HostIO support, transfer of layout intermediate files to the simple viewer using drag & drop has been eliminated.
Projection matrices (orthogonal and perspective) can now be selected on the simple layout viewer and stereoscopic settings can now be made.
DMPGL objects (textures) are not created by default.
DMPGL objects are required when using Layout::Draw(). In this case, set Layout::SetLayoutDrawEnable(true).
Group Class
Layout Class
Material Class
There was a hardware setting that was partially incorrect during rendering. Sometimes rendering would be performed with panes and characters shifted in position as a result. This bug has been fixed.
The font in the TextBox pane could not be changed to a font with the same name as a different folder. That problem was fixed.
When a small-sized pane was moved by clicking and dragging, the pane size would change. That problem was fixed.
In the Layout window, panes to which texture was not applied were affected by panes to which texture had been applied and would not display correctly. That problem was fixed.
The changes were not applied when Screen Size was edited in the Layout Environment Settings window, and when Texture Pattern was edited in the Property window. Those problems have been fixed.
In the Windows 7 environment, the image showing the area of the pane being edited in the Property window would not display correctly. That problem was fixed.
In the Windows 7 environment, the displays of Detail View and Image View overlapped when you switched to the Color Sample window. That problem was fixed.
In the Layout window, you could not use the shortcut keys for Zoom In and Zoom Out. That problem was fixed.
When the pane size or angle of rotation was changed by dragging with the mouse, the Z position would become changed when it was a non-zero value. That problem was fixed.
In the Texture window, the texture name displaying at the very bottom could not be seen when the vertical scroll bar was being shown. That problem was fixed.
When a pane was copy and pasted, the pane name would be changed even if there was no duplicate. That problem was fixed.
When the Property window was opened after selecting multiple panes, simultaneous editing was not possible. That problem was fixed.
Changed parts of the animation segment tag edit window, texture window, and property window layouts.
The sample multiArc for loading layout resources from multiple archives has been added. (The file itself was added to the package beginning from version 1.0.0.)
The method of loading layouts with the simple layout viewer for actual hardware has been changed from a link to ROM FS to HostIO.
The drag & drop destination for layout files has been changed from layoutviewer.bat to LayoutViewer.exe.
In addition, the PARTNER-CTR debugger starts automatically.
For details on the method of use, see %NW4C_ROOT%\tools\LayoutViewer\Readme.txt.
API functions related to getting ResourceAccessor fonts have been changed in line with changes (implemented in version 0.8.0) to API functions related to getting textures.
GetFont() has been added as a purely virtual function, while the virtual function LoadFont() has been added for creating font objects.
Both of the member functions ReferFont() and AddFont() have been determined to be unnecessarily complex and have been removed.
ResourceAccessor Class
The library leaves it up to the user to configure the GL settings. The method for configuring these GL settings has been changed so that it is now done by issuing 3D commands after GL functions have been called.
Text box panes and window panes were not being drawn correctly when rendering applying parallax to both the right- and left-eye image in the case of images that use orthogonal projection. Even picture panes were not being drawn correctly unless the horizontal was in the center. This bug has been fixed.
Use of the Draw member function of the Layout class is not recommended.
Use the Drawer class to draw layouts.
In the future, Layout::Draw() will be treated as standard in the specification. Source maintainability is priorities over performance.
High-speed drawing using TextBox available up to the previous release has been canceled and specifications have been restored to Version 0.3.0 status.
API functions for getting ResourceAccessor textures have been changed.
To flexibly conform to changes in the memory location of textures, GetTexture() has been made a purely virtual function, and the virtual function LoadTexture(), for creating texture objects, has been added.
To change the memory location of a texture, override ResourceAccessor::LoadTexture() and specify the flag using the texLoadFlag argument of lyt::LoadTexture().
Both of the member functions ReferTexture() and AddTexture() in the ResourceAccessor class have been determined to be unnecessarily complex and have been removed.
Layout Class
ResourceAccessor Class
Material Class
protected.
protected.
The id values which should have been in the 0 ~ 2 range were instead set in the 3 ~ 9 range. That was corrected.
Even when the following kinds of edits took place, the layout was not treated as a target for saving. That problem has been corrected.
When an attempt was made to start LayoutEditor with a layout specified as an argument, the process would fail. That problem was corrected.
Loading of archive font files (bcfna files) would fail. That problem was fixed.
The colors of RGBA4 format textures could not be displayed properly on LayoutEditor. That problem was corrected.
When using multi-textures in a window frame, each texture was drawn at its own size by Layout::Draw(). Meanwhile, they were being draw at the size of the first texture when using Drawer::Draw().
Specifications have been changed so that textures are drawn at the size of the first texture in to match the operation of Drawer.
A bug was fixed where Drawer would not draw as expected when all textures were specified in the source of the first texture combiner stage when using detailed material settings.
Member functions that returned non-const references to member variables have been deleted because materials could not capture changes to settings made directly to Material member variables.
A bug was fixed where changes made in software to texture-related settings in the Material, Picture or Window class were not being reflected in drawings made by Drawer.
The following is a list of functions where settings were not being reflected in drawings.
A bug was fixed where illegal 3D commands were being issued when drawing using Drawer.
When a layout from a drive with a different %NW4C_ROOT% was loaded to LayoutEditor, when the viewer first started it would fail to initialize. That problem was corrected.
Specifications now allow drawings where parallax is applied to both the left- and right-eye images when drawing using orthogonal projection. The value to use for parallax is set using the SetParallax function of the nw::lyt::Drawer class. Also, orthoStereo, a sample program using this technique, has been added.
Support was added for layouts that use the outside key frame segment repeat feature to the simple layout viewer for actual hardware.
Near/far values were allowed to range between 0.01 to 500.0 in the simple layout viewer for actual hardware, but displayed was sometimes impossible depending on the data. Specifications have been revised so that near/far values may range between -1000.0 to 1000.0.
Animations would not go smoothly if there were multiple animation tags in the simple layout viewer for actual hardware. Also, animation target group switching was not working correctly. This bug has been fixed.
A bug was fixed where settings were made for the wrong stage if output of the previous stage was specified for "buffer input source" under texture combiner stage settings when using Drawer for drawing.
A bug when drawing with Drawer was fixed.
A bug with TextBox panes was fixed.
An assert would result with actual hardware debug builds when drawing in the order TextBox then Picture.
A UI for sharing upper left frame material settings was added.
A UI for specifying a pixel value was added to texture coordinate specifications.
Texture UV coordinates can now be specified with a five-digit fractional part, whereas before it was 2 digits.
Repeat and Mirror cannot be set for textures with sizes that are not a power of two, or less than 8 dots, or in the case of ETC1 less than 16 dots.
Features for creating and editing groups have been added to the context menu of the Hierarchy window.
This was done in response to a change in the binary format of fonts. When fonts from the old version are loaded, an error displays so you know the font is old.
A Drawer class for drawing layouts at high speed has been added.
Specifications have been made so the freeing of memory associated with resource files set up by the library using GraphicsResource::SetResource() can be suppressed.
Specify false in the bFree argument that has been newly added.
A no longer used shader (nwlyt_NewPaneShader.shbin) was deleted.
Support was added for a feature allowing material settings for the upper left frame to be shared with all frames in window panes.
Material settings other than textures are not set for materials for which FLAG_TEXTURE_ONLY is set.
Settings for drawing the upper left frame are used as-is for drawing subsequent frames.
Drawer Class
Pane Class
GraphicsResource Class
Material Class
TexMap Class
The archive file format was changed. Not compatible with previous version of archive file.
When two or three textures were applied, the automatic settings did not configure the constant values correctly. That problem was fixed.
The vertical size of the Properties Window would become extremely small. That problem was corrected.
A bug was fixed where, even if a matrix was set by Pane::SetMtx() or Pane::SetGlobalMtx(), Pane::CalculateMtx() would overwrite it.
This was done in response to a change in the binary format of fonts. Previous version font files are no longer supported and cannot be used.
A bug was fixed where the wrong scale was being applied to textures when using a texture having a size other than a power of two in a window pane frame.
A batchfile for starting TS boards was added for the simple layout viewer for actual hardware.
For details, see $NW4C_ROOT/tools/LayoutViewer/Readme.txt.
A mistake in the description of the strLen argument to TextBox::SetString() has been corrected.
If the value of strLen is 0, this indicates a string length of 0, not the length up to the terminal character.
A bug was fixed where, if two or more textures were attached to the window pane frame region, the texture coordinates of the second and third textures were not being set correctly.
The DrawManager class has been added as an experimental implementation for increasing the speed of drawing.
The revision made to pane calculations in version 0.5.0 has been restored to original status as a countermeasure against the screen becoming fuzzy due to texture interpolation.
If the position of the pane is in the center, the pane size is not rounded up to a multiple of two.
There used to be a feature for multiplying together the view matrix and SRT matrix of the pane during rendering in order to draw layouts from multiple perspectives, but this has been deleted.
The view matrix is always included in the SRT matrix after calculation for pane parents and children.
Drawing from multiple perspectives can be achieved by multiplying the coordinate-converted matrix for each view point against a projection matrix.
DrawInfo Class
A simple viewer for actual hardware (TEG2) was added.
For details on its use, see $NW4C_ROOT/tools/LayoutViewer/Readme.txt.
If the option --cvtr-ref-tex-only was specified, an attempt would be made to load the layout data (clyt) file corresponding to the animation data (clan) file, but the extension of the layout data file was wrong.
This bug has been fixed.
Layout Class
A bug was fixed where an assert would result if the debug display feature (nw::lyt::DrawInfo::SetDebugDrawMode()) was enabled on actual hardware.
In version 0.5.0, text box panes were no longer being influenced by parent transparency. This bug has been fixed.
Under version 0.5.0, the wrap position of text strings in a text box pane differed from Layout Editor. This bug has been fixed.
There was a bug where the heap was being destroyed due to a problem with the order in which memory was being deallocated by the FontRefLink class destructor. This bug has been fixed.
This destructor may be called from FontContainer, ArcResourceAccessor, or MultiArcResourceAccessor.
Transparency was added as an item that can be simultaneously edited for panes.
Added a feature to the Tool Environment Settings for configuring a default value for the Apply transparency to children switch of the null pane.
When selecting a region in Window Pane, it is no longer necessary to first select the Window Pane.
The animation frame rate can now be changed with the viewer.
For details on how, see the chapter on the Layout Viewer in the Layout Editor manual.
The viewer can now play animations by the group.
For details on how, see the chapter on the Layout Viewer in the Layout Editor manual.
The library's initialization function has been changed.
In previous releases, the following functions were used for initialization:
But now those functions have been collected together as: nw::lyt::Initialize().
void nw::lyt::Initialize(
nw::os::IAllocator* pAllocator,
nw::os::IAllocator* pDeviceMemoryAllocator);
Specify the allocator for conventional memory in the pAllocator argument. (The allocator specified to nw::lyt::Layout::SetAllocator().))
For the pDeviceMemoryAllocator argument, you specify the allocator for device memory.
Layout Class
FreeDeviceMemory()
TextBox Class
AllocStringBuffer() -- Added the argument isDoubleBuffer.
When a texture was updated, its thumbnail and path would not be updated in the Texture Window. That problem was fixed.
When group names were changed, numbers would be added to the end of the names. That problem was fixed.
When textures were flipped and rotated in the Window Pane, they would not display correctly in the Layout window. That problem was fixed.
When the position of the pane is not an integer, sometimes images will become blurry due to texture interpolation.
Especially when the pane is centered, if the pane size is an odd number the images will be blurred.
Because of this, the method for calculating the position has been revised as follows:
glDisable(GL_CULL_FACE) is no longer called inside the library.
Have your applications configure culling mode settings as needed.
Layouts that included panes with pane names of 14 characters or longer did not load correctly. That problem has been fixed.
The reference manual was improved.
Revised the access restrictions on the following functions, changing them from private to public:
A feature was added so multiple panes can be selected and their properties edited at the same time in the Properties Window.
The Color Interpolation Settings can now be configured by copying and pasting from a node in the Properties Window.
Added a feature so the pane that is the target of editing is shown in a white frame when the Properties Window is active.
An exception error would occur when the attempt was made to copy fragment operations and texture combiners from a node in the Properties Window. That problem has been fixed.
If the operation to close the project was performed while animation was playing, sometimes the animation would continue playing even though the project was closed, and other times the project would not close correctly and an exception would occur. That problem has been fixed.
When LayoutEditor was minimized, the Properties Window would not. That problem has been fixed.
ResourceAccessor Class
ArcResourceAccessor Class
MultiArcResourceAccessor Class
Support was added for increased font library speed.
The way font objects are handled has also changed as follows due to this.
In past versions, font objects automatically created when creating a layout from binary resources are owned by the TextBox pane referenced by that font.
Separate font objects were created for each pane even if the same font was specified.
Beginning from this release, font objects are owned by ResourceAccessor.
The same font object is now referenced when the same font has been specified for multiple panes.
Due to this change, ResourceAccessor::GetFont() has been changed to a non-virtual function.
the default value for material black has been changed to the same value used by the lyt library of NintendoWare for Revolution. (Changed from 255 to 0.)
Corrected a problem where the vertex Z-coordinate was not being output correctly.
A memory leak bug with the TextureContainer class was fixed.
The blend method used for Picture and Window panes has been fixed.
Linear interpolation using the blend ratio of the first texture is performed when applying two textures if simple settings have been made for the material. (This is the same method used by the lyt library of NintendoWare for Revolution.)
In previous releases, the blend ratio of the second texture was applied to the second texture.
A bug was fixed where conversion would fail if a blend ratio animation was set for a texture.
The newly created Picture Pane is named after the texture that was used.
Now when a project is saved, the animation frame is set to 0 and then the project is saved.
Empty groups could be created and saved, but they could not be loaded. The problem has been fixed.
All samples now run on the actual hardware.
Integrated the TextureOwner class into the ResourceAccessor class.
Added a class that uses the implementation of the ResourceAccessor concrete class.
When the frame position of a key was on the end frame of an animation segment tag or on the end frame of animation playback in Curve Editor, and the key slope type was Step, the key would not be exported to the binary source. That problem has been fixed.
The return value type has been changed toconst wchar_t*to matchnn::fs.
This has been deleted.
This has been deleted.
TextureInfo now includes the size (Size) of the region used by the texture and its overall size (RealSize).
Because of texture alignment requests on the actual hardware, it was moved to the end of the management information file.
CONFIDENTIAL