Steamworks Documentation
Steam HTML Surface


The Steam HTML Surface API enables the display and render of HTML-based pages directly in a game or application. It is built upon the Chromium Embedded Framework and supports HTML5 markup.

Getting Started with ISteamHTMLSurface

The ISteamHTMLSurface interface is implemented in isteamhtmlsurface.h and can be found in the public/steam folder in the Steamworks SDK. The interface can be accessed through the SteamHTMLSurface() interface pointer.
Below is a list of the most commonly used methods in this API. Please refer to the API reference for details on interacting with the web page (scrolling, clicking links), using javascript, file dialogs, etc.

CallBack Setup

There are a series of callbacks that can be setup to determine when certain browser events occur (see isteamhtmlsurface.h for a complete list). The Steamworks Example demonstrates implementing and using some of these callbacks in htmlsurface.h/.cpp.
To complete a simple HTML Surface implementation, a CallBack for ISteamHTMLSurface::HTML_NeedsPaint_t must be implemented to retrieve the image data for rendering.

Steamworks Example Implementation

The Steamworks API Example Application (SpaceWar) that ships with the SDK contains a basic implementation of the Steam HTML Surface API. Upon launching the sample, scroll down and select HTML Page. The Steam Community home page will then load in the game.
You can find the integration of the Steam HTML Surface API in the htmlsurface.h and htmlsurface.cpp files.
NOTE: Interactivity with the web page has not been implemented in the example at this time.