DirectX не имеет функций для рисования только одной точки. Он работает только с вершинными и индексными буферами. Если вам нужен более простой способ сделать одну точку, вам нужно написать оболочку.
Для рисования списков точек вам нужно использовать DrawPrimitive ( D3DPT_POINTLIST , ...). однако, не будет простого способа просто построить точку. Вам нужно подготовить буфер, заблокировать его, заполнить данными, а затем нарисовать буфер. Или вы можете использовать динамические буферы вершин - для оптимизации производительности. Существует вызов DrawPrimitiveUP, который должен отображать примитивы, хранящиеся в системной памяти (вместо использования буферов), но, насколько я знаю, он не работает (может молча отбрасывать примитивы) с чистыми устройствами , так что вам придется использовать программную обработку вершин.
В OpenGL у вас есть glVertex2f и glVertex3f. Ваш вызов будет выглядеть так (может быть ошибка опечатки или синтаксическая ошибка - я не компилировал / не запускал его):
glBegin(GL_POINTS);
glColor3f(1.0, 1.0, 1.0);//white
for (int y = 0; y < height; y++)
for (int x = 0; x < width; x++)
glVertex2f(points[y][x].x, points[y][x].y);//plot point
glEnd();
OpenGL НАМНОГО проще для экспериментов и экспериментов, чем DirectX. Я бы рекомендовал взглянуть на SDL и использовать его в сочетании с OpenGL. Или вы можете использовать GLUT вместо SDL.
Или вы можете попробовать использовать Qt 4. У него очень хорошие процедуры рендеринга 2D.