Exemplo n.º 1
0
    // texture
    TextureHandle Gfx_Texture_Load(RenderDevice* dev, const char* filename, TextureType::type type)
    { 
        (void)type; // TODO

        ID3D11Texture2D* tex_dx11 = NULL;
        D3DX11_IMAGE_LOAD_INFO image_load_info;

        D3D_CALL( D3DX11CreateTextureFromFileA(dev->native, filename, &image_load_info, NULL, (ID3D11Resource**)&tex_dx11, NULL) );

        if( tex_dx11 == NULL ) return InvalidResourceHandle();

        D3D11_TEXTURE2D_DESC desc;
        tex_dx11->GetDesc(&desc);

        TextureDescr tex = TextureDescr::create_2D(desc.Width, desc.Height, dx11_convert<PixelFormat::type>(desc.Format), TextureType::Tex2D);

        R_ASSERT( tex.format!=PixelFormat::Unknown );

        TextureDX11 res;

        res.desc = tex;
        res.native2D = tex_dx11;
        res.srv = create_srv(dev->native, tex_dx11);

        return dev->resources.textures.push(res);
    }
Exemplo n.º 2
0
int			main(int ac, char **av)
{
  t_env			e;
  struct timeval	tv;

  my_init_dlist(&(sdata.user));
  my_init_dchan(&(sdata.chan));
  init_env(&e);
  parser(&e, ac, av);
  create_srv(&e, &tv);
  loop(&e);
  return (0);
}
Exemplo n.º 3
0
    TextureHandle Gfx_Texture_Create(RenderDevice* dev, const TextureDescr& tex, const void* data, size_t /*size*/)
    {
        ID3D11Texture2D* tex_dx11 = NULL;

        DXGI_FORMAT format = dx11_convert<DXGI_FORMAT>(tex.format);
        D3D11_TEXTURE2D_DESC desc = CD3D11_TEXTURE2D_DESC(format, tex.width, tex.height, 1, 1);

        UINT pitch = (tex.width * PixelFormat::bits_per_pixel(tex.format))/8;

        D3D11_SUBRESOURCE_DATA initial_data;
        initial_data.pSysMem = data;
        initial_data.SysMemPitch = pitch;
        initial_data.SysMemSlicePitch = pitch * tex.height;

        D3D_CALL(dev->native->CreateTexture2D(&desc, data?&initial_data:NULL, &tex_dx11));

        TextureDX11 res;

        res.desc = tex;
        res.native2D = tex_dx11;
        res.srv = create_srv(dev->native, tex_dx11);

        return dev->resources.textures.push(res);
    }