В настоящее время я работаю над проектом, в котором мне нужно создать серверное / клиентское приложение, которое рисует графику в двух отдельных окнах приложения, используя C ++, DirectX & Winsock. Изображение должно перемещаться по оси x окна приложения сервера, пока оно не начнет исчезать из поля зрения справа. Поскольку это исчезает из поля зрения, клиентское приложение должно затем визуализировать изображение & переведите его на собственный экран, создавая впечатление, что изображение перемещается из окна сервера в окно клиента.
Я не ищу здесь какой-либо законченный код, а скорее показываю, как я мог бы информировать клиентское приложение, чтобы оно снова начало отображать изображение на своем экране, когда изображение завершило свой цикл перевода через окно серверного приложения. Я думаю, что могу сделать что-то, сосредоточенное на отслеживании местоположения g_Rectx в приведенном ниже коде и информировании клиентского приложения через сообщение, отправленное через winsock, чтобы начать рендеринг & trnslating, когда координата х выходит из поля зрения на серверном приложении, но не уверен, как этого добиться.
В настоящее время у меня есть изображение, отображаемое в окне сервера & перевод через окно, используя стандартную технику матричного перевода, все это прекрасно работает. Это как сообщить клиентскому приложению, когда начинать рендеринг на его стороне, и я не уверен, как реализовать.
Любые мысли о том, как я могу это сделать, будут очень благодарны.
выдержка из текущего кода перевода на случай, если это поможет …
// translation matrix to move the image along x axis
D3DXMATRIX TranslateMatrix;
D3DXMatrixTranslation(&TranslateMatrix, g_RectX, g_RectY, g_RectZ);
g_pd3dDevice -> SetTransform(D3DTS_WORLD, &TranslateMatrix);
// Update the rectangle's x co-ordinate
g_RectX += 0.1f;
Мне кажется, что вы просто хотите распространить трансформацию вашего объекта (положение, ориентация, масштаб) и иметь два разных представления: одно для сервера, другое для клиента. Эти виды могут быть просто разными положениями камеры. Когда объект перемещается в мире на сервере, он также перемещается на клиенте. Для заданного расстояния между вашим объектом и камерой сервера вы должны быть в состоянии вычислить, когда он начнет касаться края усеченного вида … и оттуда вы могли бы определить требуемое положение камеры на клиенте, чтобы иметь «поток» «с одного экрана на другой.
Других решений пока нет …