Author Topic: Quick WIP update  (Read 3468 times)

Offline jan_klaassen

  • FBNeo Dev
  • ******
  • Posts: 315
  • Karma: +10/-0
Quick WIP update
« on: December 21, 2017, 03:34:51 PM »
The dx9 blitter gained a few features:
  • colour controls (hue shift, saturation)
  • a set of colour profiles
  • gamma correction
  • colour correction, various modes
  • support for old graphics cards (SM1.4 and slow SM2.0 hardware)
  • CRT simulation has been optimised
  • CRT simulation has a new contrast setting
  • much faster initialisation
The calculations for the colour controls, colour correction, and gamma correction are in cross-platform burner (of course they do need to be applied to the image in a pixel/fragment shader). It can automatically read your display's colour/gamma information (from the EDID). You can also pick a standard display profile from a list, but no ICC profile support just yet.

Why colour correction? FBA goes into considerable detail to determine the numerical values of each RGB triplet, and then proceeds to completely ignore what those values will look on the display. This seems... silly. So I did something.

I still need to update the documentation and test compilation with gcc/mingw, so expect a new test release in a few days.

A few screenshots of the new contrast control in action are below.
« Last Edit: December 21, 2017, 03:37:03 PM by jan_klaassen »

Offline jan_klaassen

  • FBNeo Dev
  • ******
  • Posts: 315
  • Karma: +10/-0
Re: Quick WIP update
« Reply #1 on: December 27, 2017, 06:33:35 PM »
I'm adding a parser for colour profiles now.

Since FBA only needs to support display profiles, and only needs limited information from those, I wrote my own basic parser.

Only ICC profiles are supported, it's based on the latest available standard and it's cross-platform (C++14) so no WCS. Also for now only matrix-based (icc v4) profiles are supported, and LUT-based ones (icc v2) are not, neither are gamma LUTS.