Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запись в поток directx ili directshow 
:(
    Опции темы
rocko
Дата 13.8.2013, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 19.12.2010

Репутация: нет
Всего: нет



Добрый день!
подскажите пожалуйста, как реализовать следующее:

я создаю битмап следующим образом:

Код

#include "stdafx.h"

#include <vfw.h>
#include <windows.h>
#include <tchar.h>


int _tmain(int argc, _TCHAR* argv[])
{
    printf("starting\n");
    
    HDC hdc = CreateCompatibleDC(NULL);

    BITMAPINFO bmi;
    BITMAPINFOHEADER bmheader;
    /*bmheader.biSize=14 + 40 + 324*256*4;
    bmheader.biWidth=324;
    bmheader.biHeight=256;
    bmheader.biPlanes=1;
    bmheader.biSizeImage=324*256;
    bmheader.biBitCount=32;
    bmheader.biCompression=0;
    bmheader.biXPelsPerMeter=0;
    bmheader.biYPelsPerMeter=0;*/
    //ZeroMemory(&bmi, sizeof(BITMAPINFO));
    bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
    
    bmi.bmiHeader.biBitCount = 32;
    bmi.bmiHeader.biHeight = 256;
    bmi.bmiHeader.biWidth = 324;
    bmi.bmiHeader.biPlanes =1;
    bmi.bmiHeader.biXPelsPerMeter=0;
    bmi.bmiHeader.biYPelsPerMeter=0;

HDC dc = CreateCompatibleDC(NULL);
 
char Frame[(324*256)*4];

for (int mass=0; mass<324*256; mass++ ){
Frame[mass]=160;
                                        }

for (int height=0; height < 256; height++){
for (int index=height*324; index < (height+1)*324; index++ ){
Frame[index]=(char)height;
}
}
    HBITMAP cross =(HBITMAP) CreateBitmap(324,256,1,32,Frame);
    
        
    printf("cross red\n");

    SelectObject(hdc, cross);
        
    int i_count=0;
    
    printf("starting loop\n");

    while (1)
    {

        HDC hdc_x = GetDC(HWND_DESKTOP);
        SetStretchBltMode(hdc, HALFTONE);
        int ret=BitBlt(hdc_x,300,300,64,64,hdc,0,0,SRCCOPY);     
        
        
        printf(" %d\n", ret);
        
        ReleaseDC(HWND_DESKTOP,hdc_x); 
        
        printf(" looping : %d %d \n", i_count, ret);
        Sleep(500);
        i_count++;
    }

    return 0;
}

как этот полученный битмап, 
Код

HBITMAP cross =(HBITMAP) CreateBitmap(324,256,1,32,Frame);

записать в поток директ шоу, а потом отобразить на экране?

Этот массив байт будет обновляться по таймеру, и получится что то вроде видео. 
Как это организовать? может кто то делал что то подобное?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0542 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.