14/9/2023
v1.26

-gfx_get_settings, gfx_set_settings

--------------------------------------------------
10/18/2017
v1.25

-io_get_clipboard_text, io_set_clipboard_text

--------------------------------------------------
26/9/17
v1.24

-Bump to gfx API version 2

--------------------------------------------------
5/6/17
v1.23

-Fixed --fullscreen, --width, --height to work before gfx_Initialize
-Added --zoom/-z
-Changed cmdline args (removed -v, -w, -f)
-Fixed changing window size (zoom) while fullscreened

--------------------------------------------------
5/5/17
v1.22

-Added --input-debug and gfx_setdebugfunc
-Support GfxInitData.PostEvent

--------------------------------------------------
3/25/17
v1.21

-Add TstringToOHR() translation

--------------------------------------------------
8/27/16
v1.20

-Now requires gfx_Initialize instead of gfx_init; older OHR versions not supported
-Prints various errors to debug log
-Fix bug 2006: major slowdown after switching to another program while a joystick is plugged in
-Auto re-scan joysticks when something is plugged in

--------------------------------------------------
6/5/16
v1.19

-New io_setmousevisibility and rewritten cursor visibility handling
-A few other undocumented changes over the last years

--------------------------------------------------
6/6/12
v1.18

-Fixed bug 956: on some computers, graphics mangled on startup until the window is resized
 (Was fixed earlier, but version number not bumped)




--------------------------------------------------
3/2/12
v1.17

Added Features:

-Support for native (keyboard layout respecting) unicode text input (io_textinput)

-Support for gfx_getwindowstate, which allows the engine to ignore WM combinations




--------------------------------------------------
5/1/11
v1.16

Added Features:

-Fixed graphical bug where switching Aspect Ratio Preservation off then on would leave garbage on the sides.

-Fixed mouse bug where clicking a border to resize or move would cause mouse input to enter dead state.




--------------------------------------------------
4/30/11
v1.15

Added Features:

-Fixed hiding the taskbar in fullscreen mode.

-Provided for alt-tabbing mechanism in fullscreen.

-Fixed mouse movement from io_setmouse(). When in tile editor, pressing the directional keys on the keyboard caused the mouse cursor to move to strange locations. This is fixed.

-May have fixed the delay bug caused by switching to another window. (It was joystick related... of all things...)




--------------------------------------------------
4/28/11
v1.14

Added Features:

-Now more information is reported in the debug texts for initialization.

-Fixed a potential crash.

-Expanded compatibility.

-Fixed PrintScreen button.

-If Vista/7 users pressed Ctrl-Alt-Del, the program could crash. This was fixed.




--------------------------------------------------
4/27/11
v1.13

Added Features:

-Added method to disable system messages in Options Dialog (Alt key combinations). Alt-Tab still hasn't been stopped, though.

-Added Joystick Config button, but it's disabled for now.

-Keyboard and mouse are cleared of their state (except toggle keys) upon leaving the window.

-DirectX no longer manages the window. On Vista/7, entering full screen mode then exiting would force the colors to become "basic" until the app finished. No longer.

-Extended compatibility for directx hardware incapable of running hardware vertex processing.




--------------------------------------------------
4/23/11
v1.12

Added Features:

-All keys now report correctly, including extended keys and toggle keys. NumLock is no longer required for the NumPad keys to work correctly.




--------------------------------------------------
4/19/11
v1.11

Added Features:

-Support for new scancodes (distinguishable numpad keys)

-Fixed fast keypresses being lost, by switching to io_keybits




--------------------------------------------------
10/27/10
v1.10

Added Features:

-Fixed cursor clipping (specifically, right and bottom sides of client window).

-Changed window background color to black (for real this time) on startup.

-Fixed "Set Defaults" button in Options dialog to set the default screenshot format to png.

-Fixed an issue where, upon opening a game that restricts mouse movement, then pressing Scroll Lock to release the mouse, resizing the window would cause the window to shrink or expand dramatically.




--------------------------------------------------
10/7/10
v1.9

Added Features:

-Updated backend control functions (programming side) to new proposed interfaces.

-Added a "Refresh Joysticks - Count: x" button in the Options dialog. If a joystick is unplugged or plugged in while running, pressing the refresh will update the state. It also reports how many joysticks are plugged in.

-Fixed left and right shift keypress registration

-Changed window background color to black on startup

-Default screenshot format is png.

-Mapped the "Break/Pause" button to NumLock. One can now pause the game using "Break/Pause" or NumLock.

-Fixed ScrollLock-then-fullscreen bug.

-Fixed other mouse issues while in fullscreen and windowed, including clipping and cursor visibility handling.

-Fixed bug from entering fullscreen while window was maximized.

-Added support for io_mouserect(), or gfx_ClipCursor(). Games that used this functionality are now supported.

-While in windowed mode, if the mouse moves to the non-client area of the window (ie. close button, options menu), the cursor position is not updated in the engine, but the user can resize, select options, minimize, maximize, and close.

-When the cursor is being clipped to the window (restricted movement to the window), the user may press ScrollLock to free the mouse. This is pretty much the same functionality as before, except the user need not use ScrollLock to select options, etc. any longer.

-The ohr cursor position appears much closer to the actual location of the mouse messages it expects. (1 pixel artifact in both x and y!)

-Fixed potential crash issues.




--------------------------------------------------
9/26/10
v1.8
(Somehow information on v1.7 was lost in the development...)

Added Features:

-Fixed window icon to appear as the custom or game icon.

-Help file added to options menu.

-Fixed problem where frame would show garbage initially.

-No longer see the resizing of the window upon initialization.

-Mouse and keyboard are now through window's messages, no longer through DirectInput.

-DirectInput is not required for usage--however, if present, an infinite set of joysticks can be used with the ohr engine.

-Mouse is positioned in the window according to where the window mouse really is.

-Mouse is restricted to window if a button is being held down, but not otherwise.

-Fixed problem where system cursor could show up while not capturing mouse input and in fullscreen.




--------------------------------------------------
12/31/09
v1.6

Added Features:

-Made options in the Options dialog immediately affect the game/custom window. If cancel is pressed, the options are reverted.




--------------------------------------------------
12/29/09-12/31/09
v1.5

Added Features:

-Fixed a graphical bug on text boxes

-Support for the both versions of backend interfaces: the current 1.0, and the next generation 2.0.

-Help file added.

-Lots of code cleanup.




--------------------------------------------------
12/28/09
v1.4

Added Features:

-Fixed a bug when the backend failed to initialize.

-Screenshot options are disabled if the d3dx9 library to load the screen shot function fails. This means the user does not need the d3dx9 libraries at all to run the directx backend.

-Preparing modules to not be dependent on dinput8.dll being present on system.

-Some code cleanup.

Feature Request:

-Joystick support

-Revised backend interfaces




--------------------------------------------------
12/26/09
v1.3

Added Features:

-Fixed a backend silent failure bug that left a window around.

-Fixed some other minor bugs.

-Code cleanup. Removed a lot of old code used for shaders, fps display.

-Fps display has been removed. The engine can already display that statistic.

-Native resolution multiples can be acheived by dragging the corners of the windows. The window will snap to the closest native resolution.

-The backend now tests to see whether d3d9.dll and d3dx9_24.dll are present on the system, then only loads the functions (only 2) necessary to run. This allows a drammatically reduced size while maintaining _lots_ of compatibility (it's the next best thing to statically linked d3dx lib.) If the dll's are present, it uses them. Otherwise, it reports to the engine failure at initialization without crashing.

-By moving to StretchRect() instead of using shaders, the texel-pixel distortion issue that wan't going to be fixed was resolved. The picture is now pure.

Feature Request:

-Joystick support

-Continuing to revise the backend interfaces




--------------------------------------------------
12/21/09
v1.2

Added Features:

-Fixed a few more bugs

-Code cleanup

-Window title now alerts user when they can lock/free the mouse if the mouse is acquired by ohr

-All binaries released from this point will be default msvc static, d3dx dynamic, which is designated by x.y.1.

-The backend is now added to the ohr repository!

Feature Request:

-"Snap to Native Resolution" button

-Joystick support

-Rewrite backend interfaces (code side)




--------------------------------------------------
12/18/09
v1.1

Added Features:

-Fixed a few bugs

-Changed the dialog box to modeless so that the engine doesn't hang while Options are being set

-Added ability to use Scroll Lock to toggle the os mouse cursor being tied to the window. Useful if the ohr engine requests use of its own cursor and disables the os mouse cursor, and you want your os mouse cursor back.

-Adjusted initialization routines slightly

-The msvc static, d3dx dynamic build has been chosen as the default build type, so v1.1.1 is the official dll.

Feature Request:

-"Snap to Native Resolution" button

-Joystick support




--------------------------------------------------
12/17/09
v1.0
aka Beta + 1
Official public release... ;)

Added Features:

-Switching version nomenclature to Major.Minor.BuildInfo--Major releases are not compatible with each other. Minor releases are bugfixes or feature request implementations that can be solved by just recopying the dll to the folder. BuildInfo identifies whether the dll was compiled dynamically or statically: Bit 0 on identifies directx library was linked dynamically, Bit 1 on identifies msvc 2008 was linked dynamically. (ie. Version 1.0.0 means major release 1, revision 0, and statically linked d3dx lib and msvc 2008 runtime. Version 1.0.3 means major release 1, revision 0, and dynamically linked d3dx lib and msvc 2008 runtime.)

-Enabled visual themes for Options dialog so dialog appears like a modern window gui

-Added a mouse input rectangle clip that doesn't affect the os mouse

-os mouse hides when ohr mouse is active now

-Removed shader support entirely--no benefit in this situation to using shaders over IDirect3DDevice9::StretchRect()

-Multiple binary options for directx/msvc dependency issues. The dll's are interchangeable after the program is built with any of the lib files.

-Integration with runtime graphics loading

Known Bugs:

-None

Feature Request:

-"Snap to Native Resolution multiple" button

-Joystick support




--------------------------------------------------
12/08/09
Beta
Public release.

Added Features:

-Enabled os mouse hiding in fullscreen--not in windowed mode. Waiting on ohr engine to fix backend notification on os mouse hiding.

-Adjusted screenshot capture to capture only the image, not the aspect ratio padding

-Added support for pre-shader 2.0 graphics cards

-Fixed a few direct input keys convert to fb scancodes

Known Bugs:

-None

Features to be added:

-Joystick support




--------------------------------------------------
12/04/09
Alpha + 7

Added Features:

-Options to set format of screenshots available, including in Options dialog

-All options can be set from command line

-Major update to Options dialog

-Removed 'Native Resolutions' from Options

-Added a status note in Options to report problems

-Added a "Set Defaults" button in Options

-Fixed resolution setting issue

-Backend now alerts ohr engine of quit requests

-Window icon is app icon now

-Fixed effect driver support

-Support for more video cards that require square textures.

-Stronger error handling built in

-All dependencies have been removed, including directx and vc2008

Known Bugs:

-Temporarily disabled os mouse hiding, including in fullscreen

Features to be added:

-Joystick support




--------------------------------------------------
11/25/09
Alpha + 6

Added Features:

-Dll maintains all resources, no longer need other resources in compilation

-No need to recompile binaries if dll is updated.

-Size of ohr app is reduced because resources do not need to be added to it.

-App icon is now appropriate (though not in the window, yet. Still waiting for that adjustment to ohr engine.)

-Pixel distortions are negligible. No fixing being done there.

-Screenshots altered to capture the backbuffer.

Known Bugs:

-No joystick (not really a bug, just a feature request. This will be removed on the next release from Known Bugs).

Features to be added soon:

-Options can be set from a command line at program start

-Options to set the format of screenshots

-Joystick support




--------------------------------------------------
11/25/09
Alpha + 5

Added Features:

-Fixed power of two texture stretching, again...

-Aspect ratio preservation will pad the sides of the window to preserve the aspect ratio (320/200) of the ohr frames. It is enabled in the options dialog by default.

-Window resizing now dynamically adjusts the backbuffer resolution.

Known Bugs:

-Pixel distortion at very small resolution (probably negligible at this point)

-Screenshots do not appear correctly on some graphics cards (power-of-2 problem)

-No joystick

-App icon is neutral




--------------------------------------------------
11/24/09
Alpha + 4

Added Features:

-Fixed power of two texture stretching.

-Native resolution zoomx3 is default resolution.

-Fullscreen resolution is the current desktop screen resolution. The engine keeps its aspect ratio by buffering the sides of the image with black space.

-Jazzed up options dialog with graphic

-User can choose smooth or sharp graphics from options dialog

-Right alt and control keys are now supported.

Known Bugs:

-Pixel distortions with texel mismatching at lowest native resolution

-No joystick support

-App icon is neutral until the ohr engine is adjusted to load the icon




--------------------------------------------------
11/24/09
Alpha + 3

Added Features:

-Support for power of 2-only textures

-Minor fix on native resolution buttons

-Window title works

-Fixed ALT key combination messages getting to ohr engine except for external system messages(ALT-Tab, etc)

Known Bugs:

-Limited resolution support for fullscreen and windowed

-Pixel distortions with texel mismatching at lowest native resolution

-No joystick support

-App icon should not be part of this release




--------------------------------------------------
11/13/09
Alpha + 2

Added Features:

-FPS display is off by default

-Palette fades now work

-Native Resolution adjusted to 320x200

-3 Zoom levels available for Native Resolution

-Mouse cursor hides when ohr cursor is present

-Mouse cursor appears when the Options dialog is chosen even if the ohr cursor is live

-Mouse cursor messages optimized in window procedure to improve performance and clean up tasks

-Engine input stops when in Options dialog or any other window gains focus

Known bugs:

-Fullscreen supports only 800x600, though windowed now supports 800x600, and 3 "native" resolutions

-Pixel distortions due to texture stretching/matching texels to pixels on the truly native 320x200 resolution when maximized, not so much on zoomed resolutions

-Window title still scrambled, hidden

-joysticks not supported

To be petitioned:

-exposing .fx variables to script api




--------------------------------------------------
11/10/09
Alpha + 1

Added Features:

-Window icon is classic "RPG" game.exe icon

-"Options" dialog box available through window system menu (top-left corner of window)

-FPS display can be toggled in "Options"

-Vsync can be toggled in "Options"

-Option to run in "Native" Resolution, or 640x480--defaults to 800x600 if disabled

-.fx file hidden inside .exe

-.fx file renders with "POINT" interpolation now, though picking smooth or sharp will be enabled soon

-Mouse cursor hidden when in full screen

-enable "ALT-Enter" to toggle fullscreen/windowed modes

-Disable user closing the window, except through game interface

Known bugs:

-Window title still scrambled, though hidden now

-joysticks not supported

To be petitioned:

-.fx variables exposed to script api




--------------------------------------------------
11/4/09
Alpha
Initial release.

Features:

-Directx 9.0c shader enabled graphics rendering.

-FPS display (cannot remove until window gui expanded)

-800x600 resolution (cannot adjust until window gui expanded)

-.fx file controls rendering. You can adjust the file to affect rendering without recompiling game.exe or gfx_directx.dll.

-currently, .fx file is rendering linear interpolation smoothing algorithms across the screen

-lost/reset graphics devices from situations like alt-tab from fullscreen

-screenshots saved as .jpg without fps displayed and without .fx rendering (pure ohr image)

-DirectInput8 input supports mouse with wheel

-DirectInput8 input supports keyboard

-reacquire input devices from situations like window losing focus

Known bugs: 

-window title is scrambled

-joysticks not supported yet

-process hangs if window is closed (ohr engine restriction)

To be added:

-move window procedure to gfx_directx.cpp so globals can interact with window messages, such as toggling vsync, toggling fps display, setting resolutions, choosing different .fx files/settings to render, mouse sensitivity, joystick configuration

-adding joystick support

-workaround the process hang

To be petitioned:

-callback to engine to alert of close/other messages

-exposing .fx variables to scripts
