wined3d: Initialize the various backends in wined3d_adapter_init_nogl() as well.
This commit is contained in:
parent
1bb17316ff
commit
f3dbbba48e
|
@ -5654,32 +5654,27 @@ HRESULT device_init(struct wined3d_device *device, struct wined3d *wined3d,
|
||||||
|
|
||||||
select_shader_mode(&adapter->gl_info, &device->ps_selected_mode, &device->vs_selected_mode);
|
select_shader_mode(&adapter->gl_info, &device->ps_selected_mode, &device->vs_selected_mode);
|
||||||
device->shader_backend = adapter->shader_backend;
|
device->shader_backend = adapter->shader_backend;
|
||||||
|
device->shader_backend->shader_get_caps(&adapter->gl_info, &shader_caps);
|
||||||
|
device->vs_version = shader_caps.vs_version;
|
||||||
|
device->gs_version = shader_caps.gs_version;
|
||||||
|
device->ps_version = shader_caps.ps_version;
|
||||||
|
device->d3d_vshader_constantF = shader_caps.vs_uniform_count;
|
||||||
|
device->d3d_pshader_constantF = shader_caps.ps_uniform_count;
|
||||||
|
device->vs_clipping = shader_caps.vs_clipping;
|
||||||
|
|
||||||
if (device->shader_backend)
|
|
||||||
{
|
|
||||||
device->shader_backend->shader_get_caps(&adapter->gl_info, &shader_caps);
|
|
||||||
device->vs_version = shader_caps.vs_version;
|
|
||||||
device->gs_version = shader_caps.gs_version;
|
|
||||||
device->ps_version = shader_caps.ps_version;
|
|
||||||
device->d3d_vshader_constantF = shader_caps.vs_uniform_count;
|
|
||||||
device->d3d_pshader_constantF = shader_caps.ps_uniform_count;
|
|
||||||
device->vs_clipping = shader_caps.vs_clipping;
|
|
||||||
}
|
|
||||||
fragment_pipeline = adapter->fragment_pipe;
|
fragment_pipeline = adapter->fragment_pipe;
|
||||||
if (fragment_pipeline)
|
fragment_pipeline->get_caps(&adapter->gl_info, &ffp_caps);
|
||||||
{
|
device->max_ffp_textures = ffp_caps.MaxSimultaneousTextures;
|
||||||
fragment_pipeline->get_caps(&adapter->gl_info, &ffp_caps);
|
|
||||||
device->max_ffp_textures = ffp_caps.MaxSimultaneousTextures;
|
|
||||||
|
|
||||||
hr = compile_state_table(device->StateTable, device->multistate_funcs, &adapter->gl_info,
|
if (fragment_pipeline->states
|
||||||
ffp_vertexstate_template, fragment_pipeline, misc_state_template);
|
&& FAILED(hr = compile_state_table(device->StateTable, device->multistate_funcs,
|
||||||
if (FAILED(hr))
|
&adapter->gl_info, ffp_vertexstate_template, fragment_pipeline, misc_state_template)))
|
||||||
{
|
{
|
||||||
ERR("Failed to compile state table, hr %#x.\n", hr);
|
ERR("Failed to compile state table, hr %#x.\n", hr);
|
||||||
wined3d_decref(device->wined3d);
|
wined3d_decref(device->wined3d);
|
||||||
return hr;
|
return hr;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
device->blitter = adapter->blitter;
|
device->blitter = adapter->blitter;
|
||||||
|
|
||||||
hr = wined3d_stateblock_create(device, WINED3D_SBT_INIT, &device->stateBlock);
|
hr = wined3d_stateblock_create(device, WINED3D_SBT_INIT, &device->stateBlock);
|
||||||
|
|
|
@ -5626,6 +5626,10 @@ static void wined3d_adapter_init_nogl(struct wined3d_adapter *adapter, UINT ordi
|
||||||
adapter->TextureRam = 128 * 1024 * 1024;
|
adapter->TextureRam = 128 * 1024 * 1024;
|
||||||
|
|
||||||
initPixelFormatsNoGL(&adapter->gl_info);
|
initPixelFormatsNoGL(&adapter->gl_info);
|
||||||
|
|
||||||
|
adapter->fragment_pipe = &none_fragment_pipe;
|
||||||
|
adapter->shader_backend = &none_shader_backend;
|
||||||
|
adapter->blitter = &cpu_blit;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void STDMETHODCALLTYPE wined3d_null_wined3d_object_destroyed(void *parent) {}
|
static void STDMETHODCALLTYPE wined3d_null_wined3d_object_destroyed(void *parent) {}
|
||||||
|
|
|
@ -5735,6 +5735,36 @@ const struct fragment_pipeline ffp_fragment_pipeline = {
|
||||||
FALSE /* we cannot disable projected textures. The vertex pipe has to do it */
|
FALSE /* we cannot disable projected textures. The vertex pipe has to do it */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void fp_none_enable(const struct wined3d_gl_info *gl_info, BOOL enable) {}
|
||||||
|
|
||||||
|
static void fp_none_get_caps(const struct wined3d_gl_info *gl_info, struct fragment_caps *caps)
|
||||||
|
{
|
||||||
|
memset(caps, 0, sizeof(*caps));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *fp_none_alloc(const struct wined3d_shader_backend_ops *shader_backend, void *shader_priv)
|
||||||
|
{
|
||||||
|
return shader_priv;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fp_none_free(struct wined3d_device *device) {}
|
||||||
|
|
||||||
|
static BOOL fp_none_color_fixup_supported(struct color_fixup_desc fixup)
|
||||||
|
{
|
||||||
|
return is_identity_fixup(fixup);
|
||||||
|
}
|
||||||
|
|
||||||
|
const struct fragment_pipeline none_fragment_pipe =
|
||||||
|
{
|
||||||
|
fp_none_enable,
|
||||||
|
fp_none_get_caps,
|
||||||
|
fp_none_alloc,
|
||||||
|
fp_none_free,
|
||||||
|
fp_none_color_fixup_supported,
|
||||||
|
NULL,
|
||||||
|
FALSE,
|
||||||
|
};
|
||||||
|
|
||||||
static unsigned int num_handlers(const APPLYSTATEFUNC *funcs)
|
static unsigned int num_handlers(const APPLYSTATEFUNC *funcs)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
|
@ -1193,6 +1193,7 @@ struct fragment_pipeline
|
||||||
|
|
||||||
extern const struct StateEntryTemplate misc_state_template[] DECLSPEC_HIDDEN;
|
extern const struct StateEntryTemplate misc_state_template[] DECLSPEC_HIDDEN;
|
||||||
extern const struct StateEntryTemplate ffp_vertexstate_template[] DECLSPEC_HIDDEN;
|
extern const struct StateEntryTemplate ffp_vertexstate_template[] DECLSPEC_HIDDEN;
|
||||||
|
extern const struct fragment_pipeline none_fragment_pipe DECLSPEC_HIDDEN;
|
||||||
extern const struct fragment_pipeline ffp_fragment_pipeline DECLSPEC_HIDDEN;
|
extern const struct fragment_pipeline ffp_fragment_pipeline DECLSPEC_HIDDEN;
|
||||||
extern const struct fragment_pipeline atifs_fragment_pipeline DECLSPEC_HIDDEN;
|
extern const struct fragment_pipeline atifs_fragment_pipeline DECLSPEC_HIDDEN;
|
||||||
extern const struct fragment_pipeline arbfp_fragment_pipeline DECLSPEC_HIDDEN;
|
extern const struct fragment_pipeline arbfp_fragment_pipeline DECLSPEC_HIDDEN;
|
||||||
|
|
Loading…
Reference in New Issue