NVList internals 02: Rendering

Previous parts — 01 Image Loading

Rendering in NVList is handled entirely through OpenGL (ES on Android). There’s no software fallback renderer, but there’s not really a need for one either. I’ve heard terrible tales of the OpenGL implementations on Intel graphics cards, but other than awful performance I haven’t found any problems. Heck, even the "GDI generic" OpenGL 1.1 implementation built into Windows seems to work fine. The capabilities of NVList’s renderer attempt to closely mirror that of the underlying graphics hardware. Some parts (GLSL shaders) require 2004-era hardware, which is why they’re optional. I’d love to be able to count on fragment shader support, but unfortunately for anyone building a VN engine, your users will expect things to work even on their decade-old toaster.

Continue reading

NVList internals 01: Image Loading

This is the first in a series of posts explaining some of the internals of the NVList engine. If you’ve ever wondered what a visual novel engine looks like on the inside (or at least the way NVList is designed), here’s your chance. I have a few articles already planned, but suggestions for future subjects are also welcome.

Today’s topic is image loading, covering the entire process from a PNG file on the hard drive until the moment it’s ready for rendering to the screen with OpenGL.

Continue reading