Вкратце, кому интересно, стереодрайвер работает так:
- Перехватывает вызовы Direct3D9
- Вместо BackBuffer'а, DepthStencil и RenderTarget текстур/поверхностей создаются стерео текстуры/поверхности. Они отличаются тем что должны хранят не один а два ракурса (для левого и правого глаза).
- Каждый Draw вызов дублируется для обоих ракурсов. При этом если используется вертексный шейдер то он модифицируется для смещения камеры, иначе модифицируется матрица проецирования. А также если используются RT текстуры, то выбирается необходимый ракурс.
- Во время вызова Present драйвер объединяет оба ракурса BackBuffer'а в один с помощью пиксельного шейдера.
Тестировал в играх HL2, HMM5, Flatout 2. Есть небольшие глюки, по этому и beta.
К сожалению не представляю как реализовать PageFlip из за того что драйвера видеокарты не предоставляют доступа к 3-PIN VGA, а также незнаю как прервать отрисовку текущего кадра и в этот момент нарисовать другой ракурс в BackBuffer. Наверное, поэтому разработку прийдеться прекратить. Так как стерео в ангалиф режиме всетаки сильно ущербное по цветопередачи.