Я знаю два варианта.
Первый - динамическая текстура. Ключевые слова:
Теперь немного деталей:
Usage: D3DUSAGE_DYNAMIC. Если нельзя - то обычная. Как проверить можно или нет - вторая ссылка.
Формат: D3DFMT_X8R8G8B8 либо D3DFMT_A8R8G8B8 либо конвертируя на лету в D3DFMT_R8G8B8.
Мипмапы: нет. Объяснение по второй ссылке.
Чтобы разобраться - берешь любой сэмпл с текстурированым квадратом/треугольником и в нём просто меняешь текстуру на свою и тестишь. Затем уже меняешь формат, и usage (использование).
Второй вариант - blt прям на surface. Теоретически можно. Практически - не проверял.
Минусы - нельзя крутить вертеть, и так как это не текстура - соответственно нельзя наложить на мэш. (например нельзя отобразить как в экране некоторого виртуального монитора)
Возможно и плюсов нет, но посмотреть в эту сторону тоже можно.
Ключевое:
PS: Ах да, забыл сказать. Даже не спрашивай меня про DX10+