Wine-devel
Threads by month
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
August 2020
- 78 participants
- 638 discussions
[PATCH v3 1/5] d3dcompiler: Rename ID3D11ShaderReflection functions to d3d11_... from d3dcompiler_...
by Paul Gofman 01 Sep '20
by Paul Gofman 01 Sep '20
01 Sep '20
Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com>
---
v2, v3:
- no changes.
dlls/d3dcompiler_43/reflection.c | 578 +++++++++++++++----------------
1 file changed, 287 insertions(+), 291 deletions(-)
diff --git a/dlls/d3dcompiler_43/reflection.c b/dlls/d3dcompiler_43/reflection.c
index 729501dbddc..9a1e869f0a5 100644
--- a/dlls/d3dcompiler_43/reflection.c
+++ b/dlls/d3dcompiler_43/reflection.c
@@ -145,9 +145,9 @@ struct d3dcompiler_shader_reflection
static struct d3dcompiler_shader_reflection_type *get_reflection_type(struct d3dcompiler_shader_reflection *reflection, const char *data, DWORD offset);
-static const struct ID3D11ShaderReflectionConstantBufferVtbl d3dcompiler_shader_reflection_constant_buffer_vtbl;
-static const struct ID3D11ShaderReflectionVariableVtbl d3dcompiler_shader_reflection_variable_vtbl;
-static const struct ID3D11ShaderReflectionTypeVtbl d3dcompiler_shader_reflection_type_vtbl;
+static const struct ID3D11ShaderReflectionConstantBufferVtbl d3d11_shader_reflection_constant_buffer_vtbl;
+static const struct ID3D11ShaderReflectionVariableVtbl d3d11_shader_reflection_variable_vtbl;
+static const struct ID3D11ShaderReflectionTypeVtbl d3d11_shader_reflection_type_vtbl;
static const struct ID3D10ShaderReflectionConstantBufferVtbl d3d10_shader_reflection_constant_buffer_vtbl;
static const struct ID3D10ShaderReflectionVariableVtbl d3d10_shader_reflection_variable_vtbl;
@@ -156,17 +156,17 @@ static const struct ID3D10ShaderReflectionTypeVtbl d3d10_shader_reflection_type_
/* null objects - needed for invalid calls */
static struct d3dcompiler_shader_reflection_constant_buffer null_constant_buffer =
{
- {&d3dcompiler_shader_reflection_constant_buffer_vtbl},
+ {&d3d11_shader_reflection_constant_buffer_vtbl},
{&d3d10_shader_reflection_constant_buffer_vtbl}
};
static struct d3dcompiler_shader_reflection_type null_type =
{
- {&d3dcompiler_shader_reflection_type_vtbl},
+ {&d3d11_shader_reflection_type_vtbl},
{&d3d10_shader_reflection_type_vtbl}
};
static struct d3dcompiler_shader_reflection_variable null_variable =
{
- {&d3dcompiler_shader_reflection_variable_vtbl},
+ {&d3d11_shader_reflection_variable_vtbl},
{&d3d10_shader_reflection_variable_vtbl},
&null_constant_buffer,
&null_type
@@ -327,9 +327,9 @@ static inline struct d3dcompiler_shader_reflection *impl_from_ID3D11ShaderReflec
return CONTAINING_RECORD(iface, struct d3dcompiler_shader_reflection, ID3D11ShaderReflection_iface);
}
-static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_QueryInterface(ID3D11ShaderReflection *iface, REFIID riid, void **object)
+static HRESULT STDMETHODCALLTYPE d3d11_shader_reflection_QueryInterface(ID3D11ShaderReflection *iface, REFIID riid, void **object)
{
- TRACE("iface %p, riid %s, object %p\n", iface, debugstr_guid(riid), object);
+ TRACE("iface %p, riid %s, object %p.\n", iface, debugstr_guid(riid), object);
if (IsEqualGUID(riid, &IID_ID3D11ShaderReflection)
|| IsEqualGUID(riid, &IID_IUnknown))
@@ -339,33 +339,33 @@ static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_QueryInterface(ID
return S_OK;
}
- WARN("%s not implemented, returning E_NOINTERFACE\n", debugstr_guid(riid));
+ WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
*object = NULL;
return E_NOINTERFACE;
}
-static ULONG STDMETHODCALLTYPE d3dcompiler_shader_reflection_AddRef(ID3D11ShaderReflection *iface)
+static ULONG STDMETHODCALLTYPE d3d11_shader_reflection_AddRef(ID3D11ShaderReflection *iface)
{
- struct d3dcompiler_shader_reflection *This = impl_from_ID3D11ShaderReflection(iface);
- ULONG refcount = InterlockedIncrement(&This->refcount);
+ struct d3dcompiler_shader_reflection *reflection = impl_from_ID3D11ShaderReflection(iface);
+ ULONG refcount = InterlockedIncrement(&reflection->refcount);
- TRACE("%p increasing refcount to %u\n", This, refcount);
+ TRACE("%p increasing refcount to %u.\n", reflection, refcount);
return refcount;
}
-static ULONG STDMETHODCALLTYPE d3dcompiler_shader_reflection_Release(ID3D11ShaderReflection *iface)
+static ULONG STDMETHODCALLTYPE d3d11_shader_reflection_Release(ID3D11ShaderReflection *iface)
{
- struct d3dcompiler_shader_reflection *This = impl_from_ID3D11ShaderReflection(iface);
- ULONG refcount = InterlockedDecrement(&This->refcount);
+ struct d3dcompiler_shader_reflection *reflection = impl_from_ID3D11ShaderReflection(iface);
+ ULONG refcount = InterlockedDecrement(&reflection->refcount);
- TRACE("%p decreasing refcount to %u\n", This, refcount);
+ TRACE("%p decreasing refcount to %u.\n", reflection, refcount);
if (!refcount)
{
- reflection_cleanup(This);
- HeapFree(GetProcessHeap(), 0, This);
+ reflection_cleanup(reflection);
+ HeapFree(GetProcessHeap(), 0, reflection);
}
return refcount;
@@ -373,53 +373,53 @@ static ULONG STDMETHODCALLTYPE d3dcompiler_shader_reflection_Release(ID3D11Shade
/* ID3D11ShaderReflection methods */
-static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetDesc(ID3D11ShaderReflection *iface, D3D11_SHADER_DESC *desc)
+static HRESULT STDMETHODCALLTYPE d3d11_shader_reflection_GetDesc(ID3D11ShaderReflection *iface, D3D11_SHADER_DESC *desc)
{
- struct d3dcompiler_shader_reflection *This = impl_from_ID3D11ShaderReflection(iface);
+ struct d3dcompiler_shader_reflection *reflection = impl_from_ID3D11ShaderReflection(iface);
- FIXME("iface %p, desc %p partial stub!\n", iface, desc);
+ FIXME("iface %p, desc %p partial stub.\n", iface, desc);
if (!desc)
{
- WARN("Invalid argument specified\n");
+ WARN("Invalid argument specified.\n");
return E_FAIL;
}
- desc->Version = This->version;
- desc->Creator = This->creator;
- desc->Flags = This->flags;
- desc->ConstantBuffers = This->constant_buffer_count;
- desc->BoundResources = This->bound_resource_count;
- desc->InputParameters = This->isgn ? This->isgn->element_count : 0;
- desc->OutputParameters = This->osgn ? This->osgn->element_count : 0;
- desc->InstructionCount = This->instruction_count;
- desc->TempRegisterCount = This->temp_register_count;
- desc->TempArrayCount = This->temp_array_count;
+ desc->Version = reflection->version;
+ desc->Creator = reflection->creator;
+ desc->Flags = reflection->flags;
+ desc->ConstantBuffers = reflection->constant_buffer_count;
+ desc->BoundResources = reflection->bound_resource_count;
+ desc->InputParameters = reflection->isgn ? reflection->isgn->element_count : 0;
+ desc->OutputParameters = reflection->osgn ? reflection->osgn->element_count : 0;
+ desc->InstructionCount = reflection->instruction_count;
+ desc->TempRegisterCount = reflection->temp_register_count;
+ desc->TempArrayCount = reflection->temp_array_count;
desc->DefCount = 0;
- desc->DclCount = This->dcl_count;
- desc->TextureNormalInstructions = This->texture_normal_instructions;
- desc->TextureLoadInstructions = This->texture_load_instructions;
- desc->TextureCompInstructions = This->texture_comp_instructions;
- desc->TextureBiasInstructions = This->texture_bias_instructions;
- desc->TextureGradientInstructions = This->texture_gradient_instructions;
- desc->FloatInstructionCount = This->float_instruction_count;
- desc->IntInstructionCount = This->int_instruction_count;
- desc->UintInstructionCount = This->uint_instruction_count;
- desc->StaticFlowControlCount = This->static_flow_control_count;
- desc->DynamicFlowControlCount = This->dynamic_flow_control_count;
+ desc->DclCount = reflection->dcl_count;
+ desc->TextureNormalInstructions = reflection->texture_normal_instructions;
+ desc->TextureLoadInstructions = reflection->texture_load_instructions;
+ desc->TextureCompInstructions = reflection->texture_comp_instructions;
+ desc->TextureBiasInstructions = reflection->texture_bias_instructions;
+ desc->TextureGradientInstructions = reflection->texture_gradient_instructions;
+ desc->FloatInstructionCount = reflection->float_instruction_count;
+ desc->IntInstructionCount = reflection->int_instruction_count;
+ desc->UintInstructionCount = reflection->uint_instruction_count;
+ desc->StaticFlowControlCount = reflection->static_flow_control_count;
+ desc->DynamicFlowControlCount = reflection->dynamic_flow_control_count;
desc->MacroInstructionCount = 0;
- desc->ArrayInstructionCount = This->array_instruction_count;
- desc->CutInstructionCount = This->cut_instruction_count;
- desc->EmitInstructionCount = This->emit_instruction_count;
- desc->GSOutputTopology = This->gs_output_topology;
- desc->GSMaxOutputVertexCount = This->gs_max_output_vertex_count;
- desc->InputPrimitive = This->input_primitive;
- desc->PatchConstantParameters = This->pcsg ? This->pcsg->element_count : 0;
+ desc->ArrayInstructionCount = reflection->array_instruction_count;
+ desc->CutInstructionCount = reflection->cut_instruction_count;
+ desc->EmitInstructionCount = reflection->emit_instruction_count;
+ desc->GSOutputTopology = reflection->gs_output_topology;
+ desc->GSMaxOutputVertexCount = reflection->gs_max_output_vertex_count;
+ desc->InputPrimitive = reflection->input_primitive;
+ desc->PatchConstantParameters = reflection->pcsg ? reflection->pcsg->element_count : 0;
desc->cGSInstanceCount = 0;
- desc->cControlPoints = This->c_control_points;
- desc->HSOutputPrimitive = This->hs_output_primitive;
- desc->HSPartitioning = This->hs_prtitioning;
- desc->TessellatorDomain = This->tessellator_domain;
+ desc->cControlPoints = reflection->c_control_points;
+ desc->HSOutputPrimitive = reflection->hs_output_primitive;
+ desc->HSPartitioning = reflection->hs_prtitioning;
+ desc->TessellatorDomain = reflection->tessellator_domain;
desc->cBarrierInstructions = 0;
desc->cInterlockedInstructions = 0;
desc->cTextureStoreInstructions = 0;
@@ -427,39 +427,39 @@ static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetDesc(ID3D11Sha
return S_OK;
}
-static struct ID3D11ShaderReflectionConstantBuffer * STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetConstantBufferByIndex(
- ID3D11ShaderReflection *iface, UINT index)
+static struct ID3D11ShaderReflectionConstantBuffer * STDMETHODCALLTYPE d3d11_shader_reflection_GetConstantBufferByIndex
+ (ID3D11ShaderReflection *iface, UINT index)
{
- struct d3dcompiler_shader_reflection *This = impl_from_ID3D11ShaderReflection(iface);
+ struct d3dcompiler_shader_reflection *reflection = impl_from_ID3D11ShaderReflection(iface);
- TRACE("iface %p, index %u\n", iface, index);
+ TRACE("iface %p, index %u.\n", iface, index);
- if (index >= This->constant_buffer_count)
+ if (index >= reflection->constant_buffer_count)
{
- WARN("Invalid argument specified\n");
+ WARN("Invalid argument specified.\n");
return &null_constant_buffer.ID3D11ShaderReflectionConstantBuffer_iface;
}
- return &This->constant_buffers[index].ID3D11ShaderReflectionConstantBuffer_iface;
+ return &reflection->constant_buffers[index].ID3D11ShaderReflectionConstantBuffer_iface;
}
-static struct ID3D11ShaderReflectionConstantBuffer * STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetConstantBufferByName(
- ID3D11ShaderReflection *iface, const char *name)
+static struct ID3D11ShaderReflectionConstantBuffer * STDMETHODCALLTYPE d3d11_shader_reflection_GetConstantBufferByName
+ (ID3D11ShaderReflection *iface, const char *name)
{
- struct d3dcompiler_shader_reflection *This = impl_from_ID3D11ShaderReflection(iface);
+ struct d3dcompiler_shader_reflection *reflection = impl_from_ID3D11ShaderReflection(iface);
unsigned int i;
- TRACE("iface %p, name %s\n", iface, debugstr_a(name));
+ TRACE("iface %p, name %s.\n", iface, debugstr_a(name));
if (!name)
{
- WARN("Invalid argument specified\n");
+ WARN("Invalid argument specified.\n");
return &null_constant_buffer.ID3D11ShaderReflectionConstantBuffer_iface;
}
- for (i = 0; i < This->constant_buffer_count; ++i)
+ for (i = 0; i < reflection->constant_buffer_count; ++i)
{
- struct d3dcompiler_shader_reflection_constant_buffer *d = &This->constant_buffers[i];
+ struct d3dcompiler_shader_reflection_constant_buffer *d = &reflection->constant_buffers[i];
if (!strcmp(d->name, name))
{
@@ -468,21 +468,21 @@ static struct ID3D11ShaderReflectionConstantBuffer * STDMETHODCALLTYPE d3dcompil
}
}
- WARN("Invalid name specified\n");
+ WARN("Invalid name specified.\n");
return &null_constant_buffer.ID3D11ShaderReflectionConstantBuffer_iface;
}
-static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetResourceBindingDesc(
- ID3D11ShaderReflection *iface, UINT index, D3D11_SHADER_INPUT_BIND_DESC *desc)
+static HRESULT STDMETHODCALLTYPE d3d11_shader_reflection_GetResourceBindingDesc(ID3D11ShaderReflection *iface,
+ UINT index, D3D11_SHADER_INPUT_BIND_DESC *desc)
{
struct d3dcompiler_shader_reflection *reflection = impl_from_ID3D11ShaderReflection(iface);
- TRACE("iface %p, index %u, desc %p\n", iface, index, desc);
+ TRACE("iface %p, index %u, desc %p.\n", iface, index, desc);
if (!desc || index >= reflection->bound_resource_count)
{
- WARN("Invalid argument specified\n");
+ WARN("Invalid argument specified.\n");
return E_INVALIDARG;
}
@@ -491,16 +491,16 @@ static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetResourceBindin
return S_OK;
}
-static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetInputParameterDesc(
- ID3D11ShaderReflection *iface, UINT index, D3D11_SIGNATURE_PARAMETER_DESC *desc)
+static HRESULT STDMETHODCALLTYPE d3d11_shader_reflection_GetInputParameterDesc(ID3D11ShaderReflection *iface,
+ UINT index, D3D11_SIGNATURE_PARAMETER_DESC *desc)
{
struct d3dcompiler_shader_reflection *reflection = impl_from_ID3D11ShaderReflection(iface);
- TRACE("iface %p, index %u, desc %p\n", iface, index, desc);
+ TRACE("iface %p, index %u, desc %p.\n", iface, index, desc);
if (!desc || !reflection->isgn || index >= reflection->isgn->element_count)
{
- WARN("Invalid argument specified\n");
+ WARN("Invalid argument specified.\n");
return E_INVALIDARG;
}
@@ -509,16 +509,16 @@ static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetInputParameter
return S_OK;
}
-static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetOutputParameterDesc(
- ID3D11ShaderReflection *iface, UINT index, D3D11_SIGNATURE_PARAMETER_DESC *desc)
+static HRESULT STDMETHODCALLTYPE d3d11_shader_reflection_GetOutputParameterDesc(ID3D11ShaderReflection *iface,
+ UINT index, D3D11_SIGNATURE_PARAMETER_DESC *desc)
{
struct d3dcompiler_shader_reflection *reflection = impl_from_ID3D11ShaderReflection(iface);
- TRACE("iface %p, index %u, desc %p\n", iface, index, desc);
+ TRACE("iface %p, index %u, desc %p.\n", iface, index, desc);
if (!desc || !reflection->osgn || index >= reflection->osgn->element_count)
{
- WARN("Invalid argument specified\n");
+ WARN("Invalid argument specified.\n");
return E_INVALIDARG;
}
@@ -527,16 +527,16 @@ static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetOutputParamete
return S_OK;
}
-static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetPatchConstantParameterDesc(
- ID3D11ShaderReflection *iface, UINT index, D3D11_SIGNATURE_PARAMETER_DESC *desc)
+static HRESULT STDMETHODCALLTYPE d3d11_shader_reflection_GetPatchConstantParameterDesc(ID3D11ShaderReflection *iface,
+ UINT index, D3D11_SIGNATURE_PARAMETER_DESC *desc)
{
struct d3dcompiler_shader_reflection *reflection = impl_from_ID3D11ShaderReflection(iface);
- TRACE("iface %p, index %u, desc %p\n", iface, index, desc);
+ TRACE("iface %p, index %u, desc %p.\n", iface, index, desc);
if (!desc || !reflection->pcsg || index >= reflection->pcsg->element_count)
{
- WARN("Invalid argument specified\n");
+ WARN("Invalid argument specified.\n");
return E_INVALIDARG;
}
@@ -545,23 +545,23 @@ static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetPatchConstantP
return S_OK;
}
-static struct ID3D11ShaderReflectionVariable * STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetVariableByName(
- ID3D11ShaderReflection *iface, const char *name)
+static struct ID3D11ShaderReflectionVariable * STDMETHODCALLTYPE d3d11_shader_reflection_GetVariableByName
+ (ID3D11ShaderReflection *iface, const char *name)
{
- struct d3dcompiler_shader_reflection *This = impl_from_ID3D11ShaderReflection(iface);
+ struct d3dcompiler_shader_reflection *reflection = impl_from_ID3D11ShaderReflection(iface);
unsigned int i, k;
- TRACE("iface %p, name %s\n", iface, debugstr_a(name));
+ TRACE("iface %p, name %s.\n", iface, debugstr_a(name));
if (!name)
{
- WARN("Invalid name specified\n");
+ WARN("Invalid name specified.\n");
return &null_variable.ID3D11ShaderReflectionVariable_iface;
}
- for (i = 0; i < This->constant_buffer_count; ++i)
+ for (i = 0; i < reflection->constant_buffer_count; ++i)
{
- struct d3dcompiler_shader_reflection_constant_buffer *cb = &This->constant_buffers[i];
+ struct d3dcompiler_shader_reflection_constant_buffer *cb = &reflection->constant_buffers[i];
for (k = 0; k < cb->variable_count; ++k)
{
@@ -575,28 +575,28 @@ static struct ID3D11ShaderReflectionVariable * STDMETHODCALLTYPE d3dcompiler_sha
}
}
- WARN("Invalid name specified\n");
+ WARN("Invalid name specified.\n");
return &null_variable.ID3D11ShaderReflectionVariable_iface;
}
-static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetResourceBindingDescByName(
- ID3D11ShaderReflection *iface, const char *name, D3D11_SHADER_INPUT_BIND_DESC *desc)
+static HRESULT STDMETHODCALLTYPE d3d11_shader_reflection_GetResourceBindingDescByName(ID3D11ShaderReflection *iface,
+ const char *name, D3D11_SHADER_INPUT_BIND_DESC *desc)
{
- struct d3dcompiler_shader_reflection *This = impl_from_ID3D11ShaderReflection(iface);
+ struct d3dcompiler_shader_reflection *reflection = impl_from_ID3D11ShaderReflection(iface);
unsigned int i;
- TRACE("iface %p, name %s, desc %p\n", iface, debugstr_a(name), desc);
+ TRACE("iface %p, name %s, desc %p.\n", iface, debugstr_a(name), desc);
if (!desc || !name)
{
- WARN("Invalid argument specified\n");
+ WARN("Invalid argument specified.\n");
return E_INVALIDARG;
}
- for (i = 0; i < This->bound_resource_count; ++i)
+ for (i = 0; i < reflection->bound_resource_count; ++i)
{
- D3D12_SHADER_INPUT_BIND_DESC *d = &This->bound_resources[i];
+ D3D12_SHADER_INPUT_BIND_DESC *d = &reflection->bound_resources[i];
if (!strcmp(d->Name, name))
{
@@ -606,191 +606,185 @@ static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetResourceBindin
}
}
- WARN("Invalid name specified\n");
+ WARN("Invalid name specified.\n");
return E_INVALIDARG;
}
-static UINT STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetMovInstructionCount(
- ID3D11ShaderReflection *iface)
+static UINT STDMETHODCALLTYPE d3d11_shader_reflection_GetMovInstructionCount(ID3D11ShaderReflection *iface)
{
- struct d3dcompiler_shader_reflection *This = impl_from_ID3D11ShaderReflection(iface);
+ struct d3dcompiler_shader_reflection *reflection = impl_from_ID3D11ShaderReflection(iface);
- TRACE("iface %p\n", iface);
+ TRACE("iface %p.\n", iface);
- return This->mov_instruction_count;
+ return reflection->mov_instruction_count;
}
-static UINT STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetMovcInstructionCount(
- ID3D11ShaderReflection *iface)
+static UINT STDMETHODCALLTYPE d3d11_shader_reflection_GetMovcInstructionCount(ID3D11ShaderReflection *iface)
{
- FIXME("iface %p stub!\n", iface);
+ FIXME("iface %p stub.\n", iface);
return 0;
}
-static UINT STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetConversionInstructionCount(
- ID3D11ShaderReflection *iface)
+static UINT STDMETHODCALLTYPE d3d11_shader_reflection_GetConversionInstructionCount(ID3D11ShaderReflection *iface)
{
- struct d3dcompiler_shader_reflection *This = impl_from_ID3D11ShaderReflection(iface);
+ struct d3dcompiler_shader_reflection *reflection = impl_from_ID3D11ShaderReflection(iface);
- TRACE("iface %p\n", iface);
+ TRACE("iface %p.\n", iface);
- return This->conversion_instruction_count;
+ return reflection->conversion_instruction_count;
}
-static UINT STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetBitwiseInstructionCount(
- ID3D11ShaderReflection *iface)
+static UINT STDMETHODCALLTYPE d3d11_shader_reflection_GetBitwiseInstructionCount(ID3D11ShaderReflection *iface)
{
- FIXME("iface %p stub!\n", iface);
+ FIXME("iface %p stub.\n", iface);
return 0;
}
-static D3D_PRIMITIVE STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetGSInputPrimitive(
- ID3D11ShaderReflection *iface)
+static D3D_PRIMITIVE STDMETHODCALLTYPE d3d11_shader_reflection_GetGSInputPrimitive(ID3D11ShaderReflection *iface)
{
- FIXME("iface %p stub!\n", iface);
+ FIXME("iface %p stub.\n", iface);
return 0;
}
-static BOOL STDMETHODCALLTYPE d3dcompiler_shader_reflection_IsSampleFrequencyShader(
- ID3D11ShaderReflection *iface)
+static BOOL STDMETHODCALLTYPE d3d11_shader_reflection_IsSampleFrequencyShader(ID3D11ShaderReflection *iface)
{
- FIXME("iface %p stub!\n", iface);
+ FIXME("iface %p stub.\n", iface);
return FALSE;
}
-static UINT STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetNumInterfaceSlots(
- ID3D11ShaderReflection *iface)
+static UINT STDMETHODCALLTYPE d3d11_shader_reflection_GetNumInterfaceSlots(ID3D11ShaderReflection *iface)
{
- FIXME("iface %p stub!\n", iface);
+ FIXME("iface %p stub.\n", iface);
return 0;
}
-static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetMinFeatureLevel(
- ID3D11ShaderReflection *iface, D3D_FEATURE_LEVEL *level)
+static HRESULT STDMETHODCALLTYPE d3d11_shader_reflection_GetMinFeatureLevel(ID3D11ShaderReflection *iface,
+ D3D_FEATURE_LEVEL *level)
{
- FIXME("iface %p, level %p stub!\n", iface, level);
+ FIXME("iface %p, level %p stub.\n", iface, level);
return E_NOTIMPL;
}
-static UINT STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetThreadGroupSize(
- ID3D11ShaderReflection *iface, UINT *sizex, UINT *sizey, UINT *sizez)
+static UINT STDMETHODCALLTYPE d3d11_shader_reflection_GetThreadGroupSize(ID3D11ShaderReflection *iface,
+ UINT *sizex, UINT *sizey, UINT *sizez)
{
- FIXME("iface %p, sizex %p, sizey %p, sizez %p stub!\n", iface, sizex, sizey, sizez);
+ FIXME("iface %p, sizex %p, sizey %p, sizez %p stub.\n", iface, sizex, sizey, sizez);
return 0;
}
-static UINT64 STDMETHODCALLTYPE d3dcompiler_shader_reflection_GetRequiresFlags(
- ID3D11ShaderReflection *iface)
+static UINT64 STDMETHODCALLTYPE d3d11_shader_reflection_GetRequiresFlags(ID3D11ShaderReflection *iface)
{
- FIXME("iface %p stub!\n", iface);
+ FIXME("iface %p stub.\n", iface);
return 0;
}
-static const struct ID3D11ShaderReflectionVtbl d3dcompiler_shader_reflection_vtbl =
+static const struct ID3D11ShaderReflectionVtbl d3d11_shader_reflection_vtbl =
{
/* IUnknown methods */
- d3dcompiler_shader_reflection_QueryInterface,
- d3dcompiler_shader_reflection_AddRef,
- d3dcompiler_shader_reflection_Release,
+ d3d11_shader_reflection_QueryInterface,
+ d3d11_shader_reflection_AddRef,
+ d3d11_shader_reflection_Release,
/* ID3D11ShaderReflection methods */
- d3dcompiler_shader_reflection_GetDesc,
- d3dcompiler_shader_reflection_GetConstantBufferByIndex,
- d3dcompiler_shader_reflection_GetConstantBufferByName,
- d3dcompiler_shader_reflection_GetResourceBindingDesc,
- d3dcompiler_shader_reflection_GetInputParameterDesc,
- d3dcompiler_shader_reflection_GetOutputParameterDesc,
- d3dcompiler_shader_reflection_GetPatchConstantParameterDesc,
- d3dcompiler_shader_reflection_GetVariableByName,
- d3dcompiler_shader_reflection_GetResourceBindingDescByName,
- d3dcompiler_shader_reflection_GetMovInstructionCount,
- d3dcompiler_shader_reflection_GetMovcInstructionCount,
- d3dcompiler_shader_reflection_GetConversionInstructionCount,
- d3dcompiler_shader_reflection_GetBitwiseInstructionCount,
- d3dcompiler_shader_reflection_GetGSInputPrimitive,
- d3dcompiler_shader_reflection_IsSampleFrequencyShader,
- d3dcompiler_shader_reflection_GetNumInterfaceSlots,
- d3dcompiler_shader_reflection_GetMinFeatureLevel,
- d3dcompiler_shader_reflection_GetThreadGroupSize,
- d3dcompiler_shader_reflection_GetRequiresFlags,
+ d3d11_shader_reflection_GetDesc,
+ d3d11_shader_reflection_GetConstantBufferByIndex,
+ d3d11_shader_reflection_GetConstantBufferByName,
+ d3d11_shader_reflection_GetResourceBindingDesc,
+ d3d11_shader_reflection_GetInputParameterDesc,
+ d3d11_shader_reflection_GetOutputParameterDesc,
+ d3d11_shader_reflection_GetPatchConstantParameterDesc,
+ d3d11_shader_reflection_GetVariableByName,
+ d3d11_shader_reflection_GetResourceBindingDescByName,
+ d3d11_shader_reflection_GetMovInstructionCount,
+ d3d11_shader_reflection_GetMovcInstructionCount,
+ d3d11_shader_reflection_GetConversionInstructionCount,
+ d3d11_shader_reflection_GetBitwiseInstructionCount,
+ d3d11_shader_reflection_GetGSInputPrimitive,
+ d3d11_shader_reflection_IsSampleFrequencyShader,
+ d3d11_shader_reflection_GetNumInterfaceSlots,
+ d3d11_shader_reflection_GetMinFeatureLevel,
+ d3d11_shader_reflection_GetThreadGroupSize,
+ d3d11_shader_reflection_GetRequiresFlags,
};
/* ID3D11ShaderReflectionConstantBuffer methods */
-static inline struct d3dcompiler_shader_reflection_constant_buffer *impl_from_ID3D11ShaderReflectionConstantBuffer(ID3D11ShaderReflectionConstantBuffer *iface)
+static inline struct d3dcompiler_shader_reflection_constant_buffer *impl_from_ID3D11ShaderReflectionConstantBuffer
+ (ID3D11ShaderReflectionConstantBuffer *iface)
{
- return CONTAINING_RECORD(iface, struct d3dcompiler_shader_reflection_constant_buffer, ID3D11ShaderReflectionConstantBuffer_iface);
+ return CONTAINING_RECORD(iface, struct d3dcompiler_shader_reflection_constant_buffer,
+ ID3D11ShaderReflectionConstantBuffer_iface);
}
-static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_constant_buffer_GetDesc(
- ID3D11ShaderReflectionConstantBuffer *iface, D3D11_SHADER_BUFFER_DESC *desc)
+static HRESULT STDMETHODCALLTYPE d3d11_shader_reflection_constant_buffer_GetDesc
+ (ID3D11ShaderReflectionConstantBuffer *iface, D3D11_SHADER_BUFFER_DESC *desc)
{
- struct d3dcompiler_shader_reflection_constant_buffer *This = impl_from_ID3D11ShaderReflectionConstantBuffer(iface);
+ struct d3dcompiler_shader_reflection_constant_buffer *cb = impl_from_ID3D11ShaderReflectionConstantBuffer(iface);
- TRACE("iface %p, desc %p\n", iface, desc);
+ TRACE("iface %p, desc %p.\n", iface, desc);
- if (This == &null_constant_buffer)
+ if (cb == &null_constant_buffer)
{
- WARN("Null constant buffer specified\n");
+ WARN("Null constant buffer specified.\n");
return E_FAIL;
}
if (!desc)
{
- WARN("Invalid argument specified\n");
+ WARN("Invalid argument specified.\n");
return E_FAIL;
}
- desc->Name = This->name;
- desc->Type = This->type;
- desc->Variables = This->variable_count;
- desc->Size = This->size;
- desc->uFlags = This->flags;
+ desc->Name = cb->name;
+ desc->Type = cb->type;
+ desc->Variables = cb->variable_count;
+ desc->Size = cb->size;
+ desc->uFlags = cb->flags;
return S_OK;
}
-static ID3D11ShaderReflectionVariable * STDMETHODCALLTYPE d3dcompiler_shader_reflection_constant_buffer_GetVariableByIndex(
- ID3D11ShaderReflectionConstantBuffer *iface, UINT index)
+static ID3D11ShaderReflectionVariable * STDMETHODCALLTYPE d3d11_shader_reflection_constant_buffer_GetVariableByIndex
+ (ID3D11ShaderReflectionConstantBuffer *iface, UINT index)
{
- struct d3dcompiler_shader_reflection_constant_buffer *This = impl_from_ID3D11ShaderReflectionConstantBuffer(iface);
+ struct d3dcompiler_shader_reflection_constant_buffer *cb = impl_from_ID3D11ShaderReflectionConstantBuffer(iface);
- TRACE("iface %p, index %u\n", iface, index);
+ TRACE("iface %p, index %u.\n", iface, index);
- if (index >= This->variable_count)
+ if (index >= cb->variable_count)
{
- WARN("Invalid index specified\n");
+ WARN("Invalid index specified.\n");
return &null_variable.ID3D11ShaderReflectionVariable_iface;
}
- return &This->variables[index].ID3D11ShaderReflectionVariable_iface;
+ return &cb->variables[index].ID3D11ShaderReflectionVariable_iface;
}
-static ID3D11ShaderReflectionVariable * STDMETHODCALLTYPE d3dcompiler_shader_reflection_constant_buffer_GetVariableByName(
- ID3D11ShaderReflectionConstantBuffer *iface, const char *name)
+static ID3D11ShaderReflectionVariable * STDMETHODCALLTYPE d3d11_shader_reflection_constant_buffer_GetVariableByName
+ (ID3D11ShaderReflectionConstantBuffer *iface, const char *name)
{
- struct d3dcompiler_shader_reflection_constant_buffer *This = impl_from_ID3D11ShaderReflectionConstantBuffer(iface);
+ struct d3dcompiler_shader_reflection_constant_buffer *cb = impl_from_ID3D11ShaderReflectionConstantBuffer(iface);
unsigned int i;
- TRACE("iface %p, name %s\n", iface, debugstr_a(name));
+ TRACE("iface %p, name %s.\n", iface, debugstr_a(name));
if (!name)
{
- WARN("Invalid argument specified\n");
+ WARN("Invalid argument specified.\n");
return &null_variable.ID3D11ShaderReflectionVariable_iface;
}
- for (i = 0; i < This->variable_count; ++i)
+ for (i = 0; i < cb->variable_count; ++i)
{
- struct d3dcompiler_shader_reflection_variable *v = &This->variables[i];
+ struct d3dcompiler_shader_reflection_variable *v = &cb->variables[i];
if (!strcmp(v->name, name))
{
@@ -799,155 +793,158 @@ static ID3D11ShaderReflectionVariable * STDMETHODCALLTYPE d3dcompiler_shader_ref
}
}
- WARN("Invalid name specified\n");
+ WARN("Invalid name specified.\n");
return &null_variable.ID3D11ShaderReflectionVariable_iface;
}
-static const struct ID3D11ShaderReflectionConstantBufferVtbl d3dcompiler_shader_reflection_constant_buffer_vtbl =
+static const struct ID3D11ShaderReflectionConstantBufferVtbl d3d11_shader_reflection_constant_buffer_vtbl =
{
/* ID3D11ShaderReflectionConstantBuffer methods */
- d3dcompiler_shader_reflection_constant_buffer_GetDesc,
- d3dcompiler_shader_reflection_constant_buffer_GetVariableByIndex,
- d3dcompiler_shader_reflection_constant_buffer_GetVariableByName,
+ d3d11_shader_reflection_constant_buffer_GetDesc,
+ d3d11_shader_reflection_constant_buffer_GetVariableByIndex,
+ d3d11_shader_reflection_constant_buffer_GetVariableByName,
};
/* ID3D11ShaderReflectionVariable methods */
-static inline struct d3dcompiler_shader_reflection_variable *impl_from_ID3D11ShaderReflectionVariable(ID3D11ShaderReflectionVariable *iface)
+static inline struct d3dcompiler_shader_reflection_variable *impl_from_ID3D11ShaderReflectionVariable
+ (ID3D11ShaderReflectionVariable *iface)
{
- return CONTAINING_RECORD(iface, struct d3dcompiler_shader_reflection_variable, ID3D11ShaderReflectionVariable_iface);
+ return CONTAINING_RECORD(iface, struct d3dcompiler_shader_reflection_variable,
+ ID3D11ShaderReflectionVariable_iface);
}
-static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_variable_GetDesc(
- ID3D11ShaderReflectionVariable *iface, D3D11_SHADER_VARIABLE_DESC *desc)
+static HRESULT STDMETHODCALLTYPE d3d11_shader_reflection_variable_GetDesc
+ (ID3D11ShaderReflectionVariable *iface, D3D11_SHADER_VARIABLE_DESC *desc)
{
- struct d3dcompiler_shader_reflection_variable *This = impl_from_ID3D11ShaderReflectionVariable(iface);
+ struct d3dcompiler_shader_reflection_variable *cb = impl_from_ID3D11ShaderReflectionVariable(iface);
- TRACE("iface %p, desc %p\n", iface, desc);
+ TRACE("iface %p, desc %p.\n", iface, desc);
- if (This == &null_variable)
+ if (cb == &null_variable)
{
- WARN("Null variable specified\n");
+ WARN("Null variable specified.\n");
return E_FAIL;
}
if (!desc)
{
- WARN("Invalid argument specified\n");
+ WARN("Invalid argument specified.\n");
return E_FAIL;
}
- desc->Name = This->name;
- desc->StartOffset = This->start_offset;
- desc->Size = This->size;
- desc->uFlags = This->flags;
- desc->DefaultValue = This->default_value;
+ desc->Name = cb->name;
+ desc->StartOffset = cb->start_offset;
+ desc->Size = cb->size;
+ desc->uFlags = cb->flags;
+ desc->DefaultValue = cb->default_value;
return S_OK;
}
-static ID3D11ShaderReflectionType * STDMETHODCALLTYPE d3dcompiler_shader_reflection_variable_GetType(
- ID3D11ShaderReflectionVariable *iface)
+static ID3D11ShaderReflectionType * STDMETHODCALLTYPE d3d11_shader_reflection_variable_GetType
+ (ID3D11ShaderReflectionVariable *iface)
{
- struct d3dcompiler_shader_reflection_variable *This = impl_from_ID3D11ShaderReflectionVariable(iface);
+ struct d3dcompiler_shader_reflection_variable *cb = impl_from_ID3D11ShaderReflectionVariable(iface);
- TRACE("iface %p\n", iface);
+ TRACE("iface %p.\n", iface);
- return &This->type->ID3D11ShaderReflectionType_iface;
+ return &cb->type->ID3D11ShaderReflectionType_iface;
}
-static ID3D11ShaderReflectionConstantBuffer * STDMETHODCALLTYPE d3dcompiler_shader_reflection_variable_GetBuffer(
- ID3D11ShaderReflectionVariable *iface)
+static ID3D11ShaderReflectionConstantBuffer * STDMETHODCALLTYPE d3d11_shader_reflection_variable_GetBuffer
+ (ID3D11ShaderReflectionVariable *iface)
{
- struct d3dcompiler_shader_reflection_variable *This = impl_from_ID3D11ShaderReflectionVariable(iface);
+ struct d3dcompiler_shader_reflection_variable *cb = impl_from_ID3D11ShaderReflectionVariable(iface);
- TRACE("iface %p\n", iface);
+ TRACE("iface %p.\n", iface);
- return &This->constant_buffer->ID3D11ShaderReflectionConstantBuffer_iface;
+ return &cb->constant_buffer->ID3D11ShaderReflectionConstantBuffer_iface;
}
-static UINT STDMETHODCALLTYPE d3dcompiler_shader_reflection_variable_GetInterfaceSlot(
- ID3D11ShaderReflectionVariable *iface, UINT index)
+static UINT STDMETHODCALLTYPE d3d11_shader_reflection_variable_GetInterfaceSlot
+ (ID3D11ShaderReflectionVariable *iface, UINT index)
{
- FIXME("iface %p, index %u stub!\n", iface, index);
+ FIXME("iface %p, index %u stub.\n", iface, index);
return 0;
}
-static const struct ID3D11ShaderReflectionVariableVtbl d3dcompiler_shader_reflection_variable_vtbl =
+static const struct ID3D11ShaderReflectionVariableVtbl d3d11_shader_reflection_variable_vtbl =
{
/* ID3D11ShaderReflectionVariable methods */
- d3dcompiler_shader_reflection_variable_GetDesc,
- d3dcompiler_shader_reflection_variable_GetType,
- d3dcompiler_shader_reflection_variable_GetBuffer,
- d3dcompiler_shader_reflection_variable_GetInterfaceSlot,
+ d3d11_shader_reflection_variable_GetDesc,
+ d3d11_shader_reflection_variable_GetType,
+ d3d11_shader_reflection_variable_GetBuffer,
+ d3d11_shader_reflection_variable_GetInterfaceSlot,
};
/* ID3D11ShaderReflectionType methods */
-static inline struct d3dcompiler_shader_reflection_type *impl_from_ID3D11ShaderReflectionType(ID3D11ShaderReflectionType *iface)
+static inline struct d3dcompiler_shader_reflection_type *impl_from_ID3D11ShaderReflectionType
+ (ID3D11ShaderReflectionType *iface)
{
return CONTAINING_RECORD(iface, struct d3dcompiler_shader_reflection_type, ID3D11ShaderReflectionType_iface);
}
-static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_type_GetDesc(
- ID3D11ShaderReflectionType *iface, D3D11_SHADER_TYPE_DESC *desc)
+static HRESULT STDMETHODCALLTYPE d3d11_shader_reflection_type_GetDesc
+ (ID3D11ShaderReflectionType *iface, D3D11_SHADER_TYPE_DESC *desc)
{
- struct d3dcompiler_shader_reflection_type *This = impl_from_ID3D11ShaderReflectionType(iface);
+ struct d3dcompiler_shader_reflection_type *type = impl_from_ID3D11ShaderReflectionType(iface);
- TRACE("iface %p, desc %p\n", iface, desc);
+ TRACE("iface %p, desc %p.\n", iface, desc);
- if (This == &null_type)
+ if (type == &null_type)
{
- WARN("Null type specified\n");
+ WARN("Null type specified.\n");
return E_FAIL;
}
if (!desc)
{
- WARN("Invalid argument specified\n");
+ WARN("Invalid argument specified.\n");
return E_FAIL;
}
- *desc = This->desc;
+ *desc = type->desc;
return S_OK;
}
-static ID3D11ShaderReflectionType * STDMETHODCALLTYPE d3dcompiler_shader_reflection_type_GetMemberTypeByIndex(
- ID3D11ShaderReflectionType *iface, UINT index)
+static ID3D11ShaderReflectionType * STDMETHODCALLTYPE d3d11_shader_reflection_type_GetMemberTypeByIndex
+ (ID3D11ShaderReflectionType *iface, UINT index)
{
- struct d3dcompiler_shader_reflection_type *This = impl_from_ID3D11ShaderReflectionType(iface);
+ struct d3dcompiler_shader_reflection_type *type = impl_from_ID3D11ShaderReflectionType(iface);
- TRACE("iface %p, index %u\n", iface, index);
+ TRACE("iface %p, index %u.\n", iface, index);
- if (index >= This->desc.Members)
+ if (index >= type->desc.Members)
{
- WARN("Invalid index specified\n");
+ WARN("Invalid index specified.\n");
return &null_type.ID3D11ShaderReflectionType_iface;
}
- return &This->members[index].type->ID3D11ShaderReflectionType_iface;
+ return &type->members[index].type->ID3D11ShaderReflectionType_iface;
}
-static ID3D11ShaderReflectionType * STDMETHODCALLTYPE d3dcompiler_shader_reflection_type_GetMemberTypeByName(
- ID3D11ShaderReflectionType *iface, const char *name)
+static ID3D11ShaderReflectionType * STDMETHODCALLTYPE d3d11_shader_reflection_type_GetMemberTypeByName
+ (ID3D11ShaderReflectionType *iface, const char *name)
{
- struct d3dcompiler_shader_reflection_type *This = impl_from_ID3D11ShaderReflectionType(iface);
+ struct d3dcompiler_shader_reflection_type *type = impl_from_ID3D11ShaderReflectionType(iface);
unsigned int i;
- TRACE("iface %p, name %s\n", iface, debugstr_a(name));
+ TRACE("iface %p, name %s.\n", iface, debugstr_a(name));
if (!name)
{
- WARN("Invalid argument specified\n");
+ WARN("Invalid argument specified.\n");
return &null_type.ID3D11ShaderReflectionType_iface;
}
- for (i = 0; i < This->desc.Members; ++i)
+ for (i = 0; i < type->desc.Members; ++i)
{
- struct d3dcompiler_shader_reflection_type_member *member = &This->members[i];
+ struct d3dcompiler_shader_reflection_type_member *member = &type->members[i];
if (!strcmp(member->name, name))
{
@@ -956,43 +953,43 @@ static ID3D11ShaderReflectionType * STDMETHODCALLTYPE d3dcompiler_shader_reflect
}
}
- WARN("Invalid name specified\n");
+ WARN("Invalid name specified.\n");
return &null_type.ID3D11ShaderReflectionType_iface;
}
-static const char * STDMETHODCALLTYPE d3dcompiler_shader_reflection_type_GetMemberTypeName(
- ID3D11ShaderReflectionType *iface, UINT index)
+static const char * STDMETHODCALLTYPE d3d11_shader_reflection_type_GetMemberTypeName
+ (ID3D11ShaderReflectionType *iface, UINT index)
{
- struct d3dcompiler_shader_reflection_type *This = impl_from_ID3D11ShaderReflectionType(iface);
+ struct d3dcompiler_shader_reflection_type *type = impl_from_ID3D11ShaderReflectionType(iface);
- TRACE("iface %p, index %u\n", iface, index);
+ TRACE("iface %p, index %u.\n", iface, index);
- if (This == &null_type)
+ if (type == &null_type)
{
- WARN("Null type specified\n");
+ WARN("Null type specified.\n");
return "$Invalid";
}
- if (index >= This->desc.Members)
+ if (index >= type->desc.Members)
{
- WARN("Invalid index specified\n");
+ WARN("Invalid index specified.\n");
return NULL;
}
- return This->members[index].name;
+ return type->members[index].name;
}
-static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_type_IsEqual(
- ID3D11ShaderReflectionType *iface, ID3D11ShaderReflectionType *type)
+static HRESULT STDMETHODCALLTYPE d3d11_shader_reflection_type_IsEqual
+ (ID3D11ShaderReflectionType *iface, ID3D11ShaderReflectionType *type)
{
- struct d3dcompiler_shader_reflection_type *This = impl_from_ID3D11ShaderReflectionType(iface);
+ struct d3dcompiler_shader_reflection_type *reflection_type = impl_from_ID3D11ShaderReflectionType(iface);
- TRACE("iface %p, type %p\n", iface, type);
+ TRACE("iface %p, type %p.\n", iface, type);
- if (This == &null_type)
+ if (reflection_type == &null_type)
{
- WARN("Null type specified\n");
+ WARN("Null type specified.\n");
return E_FAIL;
}
@@ -1002,68 +999,67 @@ static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_type_IsEqual(
return S_FALSE;
}
-static ID3D11ShaderReflectionType * STDMETHODCALLTYPE d3dcompiler_shader_reflection_type_GetSubType(
- ID3D11ShaderReflectionType *iface)
+static ID3D11ShaderReflectionType * STDMETHODCALLTYPE d3d11_shader_reflection_type_GetSubType
+ (ID3D11ShaderReflectionType *iface)
{
FIXME("iface %p stub!\n", iface);
return NULL;
}
-static ID3D11ShaderReflectionType * STDMETHODCALLTYPE d3dcompiler_shader_reflection_type_GetBaseClass(
- ID3D11ShaderReflectionType *iface)
+static ID3D11ShaderReflectionType * STDMETHODCALLTYPE d3d11_shader_reflection_type_GetBaseClass
+ (ID3D11ShaderReflectionType *iface)
{
FIXME("iface %p stub!\n", iface);
return NULL;
}
-static UINT STDMETHODCALLTYPE d3dcompiler_shader_reflection_type_GetNumInterfaces(
- ID3D11ShaderReflectionType *iface)
+static UINT STDMETHODCALLTYPE d3d11_shader_reflection_type_GetNumInterfaces(ID3D11ShaderReflectionType *iface)
{
FIXME("iface %p stub!\n", iface);
return 0;
}
-static ID3D11ShaderReflectionType * STDMETHODCALLTYPE d3dcompiler_shader_reflection_type_GetInterfaceByIndex(
- ID3D11ShaderReflectionType *iface, UINT index)
+static ID3D11ShaderReflectionType * STDMETHODCALLTYPE d3d11_shader_reflection_type_GetInterfaceByIndex
+ (ID3D11ShaderReflectionType *iface, UINT index)
{
FIXME("iface %p, index %u stub!\n", iface, index);
return NULL;
}
-static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_type_IsOfType(
- ID3D11ShaderReflectionType *iface, ID3D11ShaderReflectionType *type)
+static HRESULT STDMETHODCALLTYPE d3d11_shader_reflection_type_IsOfType
+ (ID3D11ShaderReflectionType *iface, ID3D11ShaderReflectionType *type)
{
FIXME("iface %p, type %p stub!\n", iface, type);
return E_NOTIMPL;
}
-static HRESULT STDMETHODCALLTYPE d3dcompiler_shader_reflection_type_ImplementsInterface(
- ID3D11ShaderReflectionType *iface, ID3D11ShaderReflectionType *base)
+static HRESULT STDMETHODCALLTYPE d3d11_shader_reflection_type_ImplementsInterface
+ (ID3D11ShaderReflectionType *iface, ID3D11ShaderReflectionType *base)
{
FIXME("iface %p, base %p stub!\n", iface, base);
return E_NOTIMPL;
}
-static const struct ID3D11ShaderReflectionTypeVtbl d3dcompiler_shader_reflection_type_vtbl =
+static const struct ID3D11ShaderReflectionTypeVtbl d3d11_shader_reflection_type_vtbl =
{
/* ID3D11ShaderReflectionType methods */
- d3dcompiler_shader_reflection_type_GetDesc,
- d3dcompiler_shader_reflection_type_GetMemberTypeByIndex,
- d3dcompiler_shader_reflection_type_GetMemberTypeByName,
- d3dcompiler_shader_reflection_type_GetMemberTypeName,
- d3dcompiler_shader_reflection_type_IsEqual,
- d3dcompiler_shader_reflection_type_GetSubType,
- d3dcompiler_shader_reflection_type_GetBaseClass,
- d3dcompiler_shader_reflection_type_GetNumInterfaces,
- d3dcompiler_shader_reflection_type_GetInterfaceByIndex,
- d3dcompiler_shader_reflection_type_IsOfType,
- d3dcompiler_shader_reflection_type_ImplementsInterface,
+ d3d11_shader_reflection_type_GetDesc,
+ d3d11_shader_reflection_type_GetMemberTypeByIndex,
+ d3d11_shader_reflection_type_GetMemberTypeByName,
+ d3d11_shader_reflection_type_GetMemberTypeName,
+ d3d11_shader_reflection_type_IsEqual,
+ d3d11_shader_reflection_type_GetSubType,
+ d3d11_shader_reflection_type_GetBaseClass,
+ d3d11_shader_reflection_type_GetNumInterfaces,
+ d3d11_shader_reflection_type_GetInterfaceByIndex,
+ d3d11_shader_reflection_type_IsOfType,
+ d3d11_shader_reflection_type_ImplementsInterface,
};
static HRESULT d3dcompiler_parse_stat(struct d3dcompiler_shader_reflection *r, const char *data, DWORD data_size)
@@ -1310,7 +1306,7 @@ static struct d3dcompiler_shader_reflection_type *get_reflection_type(struct d3d
if (!type)
return NULL;
- type->ID3D11ShaderReflectionType_iface.lpVtbl = &d3dcompiler_shader_reflection_type_vtbl;
+ type->ID3D11ShaderReflectionType_iface.lpVtbl = &d3d11_shader_reflection_type_vtbl;
type->ID3D10ShaderReflectionType_iface.lpVtbl = &d3d10_shader_reflection_type_vtbl;
type->id = offset;
type->reflection = reflection;
@@ -1352,7 +1348,7 @@ static HRESULT d3dcompiler_parse_variables(struct d3dcompiler_shader_reflection_
struct d3dcompiler_shader_reflection_variable *v = &variables[i];
DWORD offset;
- v->ID3D11ShaderReflectionVariable_iface.lpVtbl = &d3dcompiler_shader_reflection_variable_vtbl;
+ v->ID3D11ShaderReflectionVariable_iface.lpVtbl = &d3d11_shader_reflection_variable_vtbl;
v->ID3D10ShaderReflectionVariable_iface.lpVtbl = &d3d10_shader_reflection_variable_vtbl;
v->constant_buffer = cb;
@@ -1551,7 +1547,7 @@ static HRESULT d3dcompiler_parse_rdef(struct d3dcompiler_shader_reflection *r, c
{
struct d3dcompiler_shader_reflection_constant_buffer *cb = &constant_buffers[i];
- cb->ID3D11ShaderReflectionConstantBuffer_iface.lpVtbl = &d3dcompiler_shader_reflection_constant_buffer_vtbl;
+ cb->ID3D11ShaderReflectionConstantBuffer_iface.lpVtbl = &d3d11_shader_reflection_constant_buffer_vtbl;
cb->ID3D10ShaderReflectionConstantBuffer_iface.lpVtbl = &d3d10_shader_reflection_constant_buffer_vtbl;
cb->reflection = r;
@@ -2375,7 +2371,7 @@ HRESULT WINAPI D3DReflect(const void *data, SIZE_T data_size, REFIID riid, void
if (!object)
return E_OUTOFMEMORY;
- object->ID3D11ShaderReflection_iface.lpVtbl = &d3dcompiler_shader_reflection_vtbl;
+ object->ID3D11ShaderReflection_iface.lpVtbl = &d3d11_shader_reflection_vtbl;
object->refcount = 1;
hr = d3dcompiler_shader_reflection_init(object, data, data_size);
--
2.26.2
2
14
[PATCH 1/5] d3dcompiler/tests: Add more tests for SM4 constant packing.
by Zebediah Figura 01 Sep '20
by Zebediah Figura 01 Sep '20
01 Sep '20
Signed-off-by: Zebediah Figura <zfigura(a)codeweavers.com>
---
dlls/d3dcompiler_43/tests/hlsl_d3d11.c | 36 +++++++++++++++++---------
1 file changed, 24 insertions(+), 12 deletions(-)
diff --git a/dlls/d3dcompiler_43/tests/hlsl_d3d11.c b/dlls/d3dcompiler_43/tests/hlsl_d3d11.c
index 72b64eb81d7..cdffc806685 100644
--- a/dlls/d3dcompiler_43/tests/hlsl_d3d11.c
+++ b/dlls/d3dcompiler_43/tests/hlsl_d3d11.c
@@ -564,6 +564,7 @@ static void test_reflection(void)
" float b;\n"
" float c;\n"
" } s;\n"
+ /* In direct contradiction to the documentation, this does not align. */
" bool g;\n"
" float h[2];\n"
" int i;\n"
@@ -572,6 +573,10 @@ static void test_reflection(void)
" row_major float3x1 l;\n"
"#pragma pack_matrix(row_major)\n"
" float3x1 o;\n"
+ " float4 p;\n"
+ " float q;\n"
+ " struct r_name {float a;} r;\n"
+ " column_major float3x1 t;\n"
"};\n"
"\n"
"float m;\n"
@@ -585,15 +590,21 @@ static void test_reflection(void)
{
D3D11_SHADER_VARIABLE_DESC var_desc;
D3D11_SHADER_TYPE_DESC type_desc;
+ const D3D11_SHADER_TYPE_DESC *field_types;
};
- static const D3D11_SHADER_TYPE_DESC field_types[] =
+ static const D3D11_SHADER_TYPE_DESC s_field_types[] =
{
{D3D_SVC_VECTOR, D3D_SVT_FLOAT, 1, 4, 0, 0, 0, "float4"},
{D3D_SVC_SCALAR, D3D_SVT_FLOAT, 1, 1, 0, 0, 16, "float"},
{D3D_SVC_SCALAR, D3D_SVT_FLOAT, 1, 1, 0, 0, 20, "float"},
};
+ static const D3D11_SHADER_TYPE_DESC r_field_types[] =
+ {
+ {D3D_SVC_SCALAR, D3D_SVT_FLOAT, 1, 1, 0, 0, 0, "float"},
+ };
+
static const struct shader_variable globals_vars =
{{"m", 0, 4, D3D_SVF_USED}, {D3D_SVC_SCALAR, D3D_SVT_FLOAT, 1, 1, 0, 0, 0, "float"}};
static const struct shader_variable params_vars =
@@ -604,7 +615,7 @@ static void test_reflection(void)
{{"b", 4, 8}, {D3D_SVC_VECTOR, D3D_SVT_FLOAT, 1, 2, 0, 0, 0, "float2"}},
{{"c", 16, 16}, {D3D_SVC_VECTOR, D3D_SVT_FLOAT, 1, 4, 0, 0, 0, "float4"}},
{{"d", 32, 4}, {D3D_SVC_SCALAR, D3D_SVT_FLOAT, 1, 1, 0, 0, 0, "float"}},
- {{"s", 48, 24}, {D3D_SVC_STRUCT, D3D_SVT_VOID, 1, 6, 0, 3, 0, "<unnamed>"}},
+ {{"s", 48, 24}, {D3D_SVC_STRUCT, D3D_SVT_VOID, 1, 6, 0, ARRAY_SIZE(s_field_types), 0, "<unnamed>"}, s_field_types},
{{"g", 72, 4}, {D3D_SVC_SCALAR, D3D_SVT_BOOL, 1, 1, 0, 0, 0, "bool"}},
{{"h", 80, 20}, {D3D_SVC_SCALAR, D3D_SVT_FLOAT, 1, 1, 2, 0, 0, "float"}},
{{"i", 100, 4}, {D3D_SVC_SCALAR, D3D_SVT_INT, 1, 1, 0, 0, 0, "int"}},
@@ -612,6 +623,10 @@ static void test_reflection(void)
{{"k", 112, 12}, {D3D_SVC_MATRIX_COLUMNS, D3D_SVT_FLOAT, 3, 1, 0, 0, 0, "float3x1"}},
{{"l", 128, 36}, {D3D_SVC_MATRIX_ROWS, D3D_SVT_FLOAT, 3, 1, 0, 0, 0, "float3x1"}},
{{"o", 176, 36, D3D_SVF_USED}, {D3D_SVC_MATRIX_ROWS, D3D_SVT_FLOAT, 3, 1, 0, 0, 0, "float3x1"}},
+ {{"p", 224, 16}, {D3D_SVC_VECTOR, D3D_SVT_FLOAT, 1, 4, 0, 0, 0, "float4"}},
+ {{"q", 240, 4}, {D3D_SVC_SCALAR, D3D_SVT_FLOAT, 1, 1, 0, 0, 0, "float"}},
+ {{"r", 256, 4}, {D3D_SVC_STRUCT, D3D_SVT_VOID, 1, 1, 0, ARRAY_SIZE(r_field_types), 0, "r_name"}, r_field_types},
+ {{"t", 260, 12}, {D3D_SVC_MATRIX_COLUMNS, D3D_SVT_FLOAT, 3, 1, 0, 0, 0, "float3x1"}},
};
static const struct
@@ -623,7 +638,7 @@ static void test_reflection(void)
{
{{"$Globals", D3D_CT_CBUFFER, 1, 16}, &globals_vars},
{{"$Params", D3D_CT_CBUFFER, 1, 16}, ¶ms_vars},
- {{"b1", D3D_CT_CBUFFER, ARRAY_SIZE(buffer_vars), 224}, buffer_vars},
+ {{"b1", D3D_CT_CBUFFER, ARRAY_SIZE(buffer_vars), 272}, buffer_vars},
};
todo_wine vs_code = compile_shader(vs_source, "vs_5_0");
@@ -669,16 +684,13 @@ static void test_reflection(void)
sprintf(prefix, "Test %u, %u", i, j);
check_type_desc(prefix, &type_desc, &expect->type_desc);
- if (!strcmp(type_desc.Name, "<unnamed>"))
+ for (k = 0; k < type_desc.Members; ++k)
{
- for (k = 0; k < ARRAY_SIZE(field_types); ++k)
- {
- field = type->lpVtbl->GetMemberTypeByIndex(type, k);
- hr = field->lpVtbl->GetDesc(field, &type_desc);
- ok(hr == S_OK, "Test %u, %u, %u: got hr %#x.\n", i, j, k, hr);
- sprintf(prefix, "Test %u, %u, %u", i, j, k);
- check_type_desc(prefix, &type_desc, &field_types[k]);
- }
+ field = type->lpVtbl->GetMemberTypeByIndex(type, k);
+ hr = field->lpVtbl->GetDesc(field, &type_desc);
+ ok(hr == S_OK, "Test %u, %u, %u: got hr %#x.\n", i, j, k, hr);
+ sprintf(prefix, "Test %u, %u, %u", i, j, k);
+ check_type_desc(prefix, &type_desc, &vs_buffers[i].vars[j].field_types[k]);
}
}
}
--
2.27.0
3
9
Signed-off-by: Ziqing Hui <zhui(a)codeweavers.com>
---
v3: Correct the variable name.
dlls/d3dx10_43/d3dx10_43_main.c | 26 +++++++++++++++++++++++++-
dlls/d3dx10_43/tests/d3dx10.c | 2 --
2 files changed, 25 insertions(+), 3 deletions(-)
2
1
[PATCH] wbemprox: Provide semi-stub implementation for client_security_QueryBlanket().
by Paul Gofman 01 Sep '20
by Paul Gofman 01 Sep '20
01 Sep '20
Horizon Zero Dawn fails to query system memory size if CoQueryProxyBlanket()
fails for wbem services.
Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com>
---
dlls/wbemprox/services.c | 20 ++++++++++++++++++--
dlls/wbemprox/tests/query.c | 7 +++++++
2 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/dlls/wbemprox/services.c b/dlls/wbemprox/services.c
index 3a0963e1f6c..ab7146db2d8 100644
--- a/dlls/wbemprox/services.c
+++ b/dlls/wbemprox/services.c
@@ -88,8 +88,24 @@ static HRESULT WINAPI client_security_QueryBlanket(
void **pAuthInfo,
DWORD *pCapabilities )
{
- FIXME("\n");
- return WBEM_E_FAILED;
+ FIXME("semi-stub.\n");
+
+ if (pAuthnSvc)
+ *pAuthnSvc = RPC_C_AUTHN_NONE;
+ if (pAuthzSvc)
+ *pAuthzSvc = RPC_C_AUTHZ_NONE;
+ if (pServerPrincName)
+ *pServerPrincName = NULL;
+ if (pAuthnLevel)
+ *pAuthnLevel = RPC_C_AUTHN_LEVEL_NONE;
+ if (pImpLevel)
+ *pImpLevel = RPC_C_IMP_LEVEL_DEFAULT;
+ if (pAuthInfo)
+ *pAuthInfo = NULL;
+ if (pCapabilities)
+ *pCapabilities = 0;
+
+ return WBEM_NO_ERROR;
}
static HRESULT WINAPI client_security_SetBlanket(
diff --git a/dlls/wbemprox/tests/query.c b/dlls/wbemprox/tests/query.c
index 17942cd89ae..74fdfaa9bc8 100644
--- a/dlls/wbemprox/tests/query.c
+++ b/dlls/wbemprox/tests/query.c
@@ -1713,6 +1713,7 @@ START_TEST(query)
BSTR path = SysAllocString( L"ROOT\\CIMV2" );
IWbemLocator *locator;
IWbemServices *services;
+ DWORD authn_svc;
HRESULT hr;
CoInitialize( NULL );
@@ -1728,6 +1729,12 @@ START_TEST(query)
hr = IWbemLocator_ConnectServer( locator, path, NULL, NULL, NULL, 0, NULL, NULL, &services );
ok( hr == S_OK, "failed to get IWbemServices interface %08x\n", hr );
+ hr = CoQueryProxyBlanket( (IUnknown *)services, NULL, NULL, NULL, NULL, NULL, NULL, NULL );
+ ok( hr == S_OK, "failed to query proxy blanket %08x\n", hr );
+
+ hr = CoQueryProxyBlanket( (IUnknown *)services, &authn_svc, NULL, NULL, NULL, NULL, NULL, NULL );
+ ok( hr == S_OK, "failed to query proxy blanket %08x\n", hr );
+
hr = CoSetProxyBlanket( (IUnknown *)services, RPC_C_AUTHN_WINNT, RPC_C_AUTHZ_NONE, NULL,
RPC_C_AUTHN_LEVEL_CALL, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE );
ok( hr == S_OK, "failed to set proxy blanket %08x\n", hr );
--
2.26.2
2
1
[PATCH vkd3d v2 1/5] include: Add basic documentation for vkd3d_types.h.
by Zebediah Figura 01 Sep '20
by Zebediah Figura 01 Sep '20
01 Sep '20
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com>
---
.gitignore | 2 +
Doxyfile.in | 17 ++
Makefile.am | 2 +
configure.ac | 3 +
include/vkd3d_types.h | 18 +-
m4/ax_prog_doxygen.m4 | 586 ++++++++++++++++++++++++++++++++++++++++++
6 files changed, 627 insertions(+), 1 deletion(-)
create mode 100644 Doxyfile.in
create mode 100644 m4/ax_prog_doxygen.m4
diff --git a/.gitignore b/.gitignore
index 72037ddb..51cba319 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,8 @@ autom4te.cache
config.log
config.status
configure
+doc
+Doxyfile
libtool
Makefile
Makefile.in
diff --git a/Doxyfile.in b/Doxyfile.in
new file mode 100644
index 00000000..a20e6f02
--- /dev/null
+++ b/Doxyfile.in
@@ -0,0 +1,17 @@
+# Doxyfile 1.8.18
+
+DOXYFILE_ENCODING = UTF-8
+PROJECT_NAME = @PACKAGE_NAME@
+PROJECT_NUMBER = @PACKAGE_VERSION@
+PROJECT_BRIEF = "The vkd3d 3D Graphics Library"
+OUTPUT_DIRECTORY = doc
+JAVADOC_AUTOBRIEF = YES
+OPTIMIZE_OUTPUT_FOR_C = YES
+EXTRACT_STATIC = YES
+
+INPUT = @srcdir@/include/vkd3d.h \
+ @srcdir@/include/vkd3d_shader.h \
+ @srcdir@/include/vkd3d_types.h \
+ @srcdir@/include/vkd3d_utils.h
+
+EXCLUDE_SYMBOLS = VKD3D_FORCE_32_BIT_ENUM
diff --git a/Makefile.am b/Makefile.am
index 58b3174c..b3d3eb63 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -167,6 +167,8 @@ demos_triangle_CFLAGS = $(DEMOS_CFLAGS)
demos_triangle_LDADD = $(DEMOS_LDADD)
endif
+(a)DX_RULES@
+
EXTRA_DIST += $(vkd3d_test_headers) $(vkd3d_demos_headers)
VKD3D_V_WIDL = $(vkd3d_v_widl_(a)AM_V@)
diff --git a/configure.ac b/configure.ac
index ca9d7600..3810fc5d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -29,6 +29,9 @@ AC_PROG_MKDIR_P
VKD3D_PROG_WIDL(3, 20)
AS_IF([test "x$WIDL" = "xno"], [AC_MSG_WARN([widl is required to build header files.])])
+DX_INIT_DOXYGEN([vkd3d], [Doxyfile], [doc])
+AC_CONFIG_FILES([Doxyfile])
+
AM_INIT_AUTOMAKE([1.11 foreign silent-rules subdir-objects no-dist-gzip dist-xz -Wall -Werror])
AM_MAINTAINER_MODE([enable])
AM_SILENT_RULES([yes])
diff --git a/include/vkd3d_types.h b/include/vkd3d_types.h
index 34c66748..020eb240 100644
--- a/include/vkd3d_types.h
+++ b/include/vkd3d_types.h
@@ -23,15 +23,31 @@
extern "C" {
#endif /* __cplusplus */
+/**
+ * \file vkd3d_types.h
+ *
+ * This file contains definitions for basic types used by vkd3d libraries.
+ */
+
#define VKD3D_FORCE_32_BIT_ENUM(name) name##_FORCE_32BIT = 0x7fffffff
+/**
+ * Result codes returned by some vkd3d functions. Error codes always have
+ * negative values; non-error codes never do.
+ */
enum vkd3d_result
{
+ /** Success. */
VKD3D_OK = 0,
- VKD3D_ERROR = -1, /* unspecified failure */
+ /** An unspecified failure occurred. */
+ VKD3D_ERROR = -1,
+ /** There are not enough resources available to complete the operation. */
VKD3D_ERROR_OUT_OF_MEMORY = -2,
+ /** One or more parameters passed to a vkd3d function were invalid. */
VKD3D_ERROR_INVALID_ARGUMENT = -3,
+ /** A shader passed to a vkd3d function was invalid. */
VKD3D_ERROR_INVALID_SHADER = -4,
+ /** The operation is not implemented in this version of vkd3d. */
VKD3D_ERROR_NOT_IMPLEMENTED = -5,
VKD3D_FORCE_32_BIT_ENUM(VKD3D_RESULT),
diff --git a/m4/ax_prog_doxygen.m4 b/m4/ax_prog_doxygen.m4
new file mode 100644
index 00000000..ed1dc83b
--- /dev/null
+++ b/m4/ax_prog_doxygen.m4
@@ -0,0 +1,586 @@
+# ===========================================================================
+# https://www.gnu.org/software/autoconf-archive/ax_prog_doxygen.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# DX_INIT_DOXYGEN(PROJECT-NAME, [DOXYFILE-PATH], [OUTPUT-DIR], ...)
+# DX_DOXYGEN_FEATURE(ON|OFF)
+# DX_DOT_FEATURE(ON|OFF)
+# DX_HTML_FEATURE(ON|OFF)
+# DX_CHM_FEATURE(ON|OFF)
+# DX_CHI_FEATURE(ON|OFF)
+# DX_MAN_FEATURE(ON|OFF)
+# DX_RTF_FEATURE(ON|OFF)
+# DX_XML_FEATURE(ON|OFF)
+# DX_PDF_FEATURE(ON|OFF)
+# DX_PS_FEATURE(ON|OFF)
+#
+# DESCRIPTION
+#
+# The DX_*_FEATURE macros control the default setting for the given
+# Doxygen feature. Supported features are 'DOXYGEN' itself, 'DOT' for
+# generating graphics, 'HTML' for plain HTML, 'CHM' for compressed HTML
+# help (for MS users), 'CHI' for generating a separate .chi file by the
+# .chm file, and 'MAN', 'RTF', 'XML', 'PDF' and 'PS' for the appropriate
+# output formats. The environment variable DOXYGEN_PAPER_SIZE may be
+# specified to override the default 'a4wide' paper size.
+#
+# By default, HTML, PDF and PS documentation is generated as this seems to
+# be the most popular and portable combination. MAN pages created by
+# Doxygen are usually problematic, though by picking an appropriate subset
+# and doing some massaging they might be better than nothing. CHM and RTF
+# are specific for MS (note that you can't generate both HTML and CHM at
+# the same time). The XML is rather useless unless you apply specialized
+# post-processing to it.
+#
+# The macros mainly control the default state of the feature. The use can
+# override the default by specifying --enable or --disable. The macros
+# ensure that contradictory flags are not given (e.g.,
+# --enable-doxygen-html and --enable-doxygen-chm,
+# --enable-doxygen-anything with --disable-doxygen, etc.) Finally, each
+# feature will be automatically disabled (with a warning) if the required
+# programs are missing.
+#
+# Once all the feature defaults have been specified, call DX_INIT_DOXYGEN
+# with the following parameters: a one-word name for the project for use
+# as a filename base etc., an optional configuration file name (the
+# default is '$(srcdir)/Doxyfile', the same as Doxygen's default), and an
+# optional output directory name (the default is 'doxygen-doc'). To run
+# doxygen multiple times for different configuration files and output
+# directories provide more parameters: the second, forth, sixth, etc
+# parameter are configuration file names and the third, fifth, seventh,
+# etc parameter are output directories. No checking is done to catch
+# duplicates.
+#
+# Automake Support
+#
+# The DX_RULES substitution can be used to add all needed rules to the
+# Makefile. Note that this is a substitution without being a variable:
+# only the @DX_RULES@ syntax will work.
+#
+# The provided targets are:
+#
+# doxygen-doc: Generate all doxygen documentation.
+#
+# doxygen-run: Run doxygen, which will generate some of the
+# documentation (HTML, CHM, CHI, MAN, RTF, XML)
+# but will not do the post processing required
+# for the rest of it (PS, PDF).
+#
+# doxygen-ps: Generate doxygen PostScript documentation.
+#
+# doxygen-pdf: Generate doxygen PDF documentation.
+#
+# Note that by default these are not integrated into the automake targets.
+# If doxygen is used to generate man pages, you can achieve this
+# integration by setting man3_MANS to the list of man pages generated and
+# then adding the dependency:
+#
+# $(man3_MANS): doxygen-doc
+#
+# This will cause make to run doxygen and generate all the documentation.
+#
+# The following variable is intended for use in Makefile.am:
+#
+# DX_CLEANFILES = everything to clean.
+#
+# Then add this variable to MOSTLYCLEANFILES.
+#
+# LICENSE
+#
+# Copyright (c) 2009 Oren Ben-Kiki <oren(a)ben-kiki.org>
+# Copyright (c) 2015 Olaf Mandel <olaf(a)mandel.name>
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice
+# and this notice are preserved. This file is offered as-is, without any
+# warranty.
+
+#serial 24
+
+## ----------##
+## Defaults. ##
+## ----------##
+
+DX_ENV=""
+AC_DEFUN([DX_FEATURE_doc], ON)
+AC_DEFUN([DX_FEATURE_dot], OFF)
+AC_DEFUN([DX_FEATURE_man], OFF)
+AC_DEFUN([DX_FEATURE_html], ON)
+AC_DEFUN([DX_FEATURE_chm], OFF)
+AC_DEFUN([DX_FEATURE_chi], OFF)
+AC_DEFUN([DX_FEATURE_rtf], OFF)
+AC_DEFUN([DX_FEATURE_xml], OFF)
+AC_DEFUN([DX_FEATURE_pdf], ON)
+AC_DEFUN([DX_FEATURE_ps], ON)
+
+## --------------- ##
+## Private macros. ##
+## --------------- ##
+
+# DX_ENV_APPEND(VARIABLE, VALUE)
+# ------------------------------
+# Append VARIABLE="VALUE" to DX_ENV for invoking doxygen and add it
+# as a substitution (but not a Makefile variable). The substitution
+# is skipped if the variable name is VERSION.
+AC_DEFUN([DX_ENV_APPEND],
+[AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])dnl
+m4_if([$1], [VERSION], [], [AC_SUBST([$1], [$2])dnl
+AM_SUBST_NOTMAKE([$1])])dnl
+])
+
+# DX_DIRNAME_EXPR
+# ---------------
+# Expand into a shell expression prints the directory part of a path.
+AC_DEFUN([DX_DIRNAME_EXPR],
+ [[expr ".$1" : '\(\.\)[^/]*$' \| "x$1" : 'x\(.*\)/[^/]*$']])
+
+# DX_IF_FEATURE(FEATURE, IF-ON, IF-OFF)
+# -------------------------------------
+# Expands according to the M4 (static) status of the feature.
+AC_DEFUN([DX_IF_FEATURE], [ifelse(DX_FEATURE_$1, ON, [$2], [$3])])
+
+# DX_REQUIRE_PROG(VARIABLE, PROGRAM)
+# ----------------------------------
+# Require the specified program to be found for the DX_CURRENT_FEATURE to work.
+AC_DEFUN([DX_REQUIRE_PROG], [
+AC_PATH_TOOL([$1], [$2])
+if test "$DX_FLAG_[]DX_CURRENT_FEATURE$$1" = 1; then
+ AC_MSG_WARN([$2 not found - will not DX_CURRENT_DESCRIPTION])
+ AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0)
+fi
+])
+
+# DX_TEST_FEATURE(FEATURE)
+# ------------------------
+# Expand to a shell expression testing whether the feature is active.
+AC_DEFUN([DX_TEST_FEATURE], [test "$DX_FLAG_$1" = 1])
+
+# DX_CHECK_DEPEND(REQUIRED_FEATURE, REQUIRED_STATE)
+# -------------------------------------------------
+# Verify that a required features has the right state before trying to turn on
+# the DX_CURRENT_FEATURE.
+AC_DEFUN([DX_CHECK_DEPEND], [
+test "$DX_FLAG_$1" = "$2" \
+|| AC_MSG_ERROR([doxygen-DX_CURRENT_FEATURE ifelse([$2], 1,
+ requires, contradicts) doxygen-$1])
+])
+
+# DX_CLEAR_DEPEND(FEATURE, REQUIRED_FEATURE, REQUIRED_STATE)
+# ----------------------------------------------------------
+# Turn off the DX_CURRENT_FEATURE if the required feature is off.
+AC_DEFUN([DX_CLEAR_DEPEND], [
+test "$DX_FLAG_$1" = "$2" || AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0)
+])
+
+# DX_FEATURE_ARG(FEATURE, DESCRIPTION,
+# CHECK_DEPEND, CLEAR_DEPEND,
+# REQUIRE, DO-IF-ON, DO-IF-OFF)
+# --------------------------------------------
+# Parse the command-line option controlling a feature. CHECK_DEPEND is called
+# if the user explicitly turns the feature on (and invokes DX_CHECK_DEPEND),
+# otherwise CLEAR_DEPEND is called to turn off the default state if a required
+# feature is disabled (using DX_CLEAR_DEPEND). REQUIRE performs additional
+# requirement tests (DX_REQUIRE_PROG). Finally, an automake flag is set and
+# DO-IF-ON or DO-IF-OFF are called according to the final state of the feature.
+AC_DEFUN([DX_ARG_ABLE], [
+ AC_DEFUN([DX_CURRENT_FEATURE], [$1])
+ AC_DEFUN([DX_CURRENT_DESCRIPTION], [$2])
+ AC_ARG_ENABLE(doxygen-$1,
+ [AS_HELP_STRING(DX_IF_FEATURE([$1], [--disable-doxygen-$1],
+ [--enable-doxygen-$1]),
+ DX_IF_FEATURE([$1], [don't $2], [$2]))],
+ [
+case "$enableval" in
+#(
+y|Y|yes|Yes|YES)
+ AC_SUBST([DX_FLAG_$1], 1)
+ $3
+;; #(
+n|N|no|No|NO)
+ AC_SUBST([DX_FLAG_$1], 0)
+;; #(
+*)
+ AC_MSG_ERROR([invalid value '$enableval' given to doxygen-$1])
+;;
+esac
+], [
+AC_SUBST([DX_FLAG_$1], [DX_IF_FEATURE([$1], 1, 0)])
+$4
+])
+if DX_TEST_FEATURE([$1]); then
+ $5
+ :
+fi
+if DX_TEST_FEATURE([$1]); then
+ $6
+ :
+else
+ $7
+ :
+fi
+])
+
+## -------------- ##
+## Public macros. ##
+## -------------- ##
+
+# DX_XXX_FEATURE(DEFAULT_STATE)
+# -----------------------------
+AC_DEFUN([DX_DOXYGEN_FEATURE], [AC_DEFUN([DX_FEATURE_doc], [$1])])
+AC_DEFUN([DX_DOT_FEATURE], [AC_DEFUN([DX_FEATURE_dot], [$1])])
+AC_DEFUN([DX_MAN_FEATURE], [AC_DEFUN([DX_FEATURE_man], [$1])])
+AC_DEFUN([DX_HTML_FEATURE], [AC_DEFUN([DX_FEATURE_html], [$1])])
+AC_DEFUN([DX_CHM_FEATURE], [AC_DEFUN([DX_FEATURE_chm], [$1])])
+AC_DEFUN([DX_CHI_FEATURE], [AC_DEFUN([DX_FEATURE_chi], [$1])])
+AC_DEFUN([DX_RTF_FEATURE], [AC_DEFUN([DX_FEATURE_rtf], [$1])])
+AC_DEFUN([DX_XML_FEATURE], [AC_DEFUN([DX_FEATURE_xml], [$1])])
+AC_DEFUN([DX_XML_FEATURE], [AC_DEFUN([DX_FEATURE_xml], [$1])])
+AC_DEFUN([DX_PDF_FEATURE], [AC_DEFUN([DX_FEATURE_pdf], [$1])])
+AC_DEFUN([DX_PS_FEATURE], [AC_DEFUN([DX_FEATURE_ps], [$1])])
+
+# DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR], ...)
+# --------------------------------------------------------------
+# PROJECT also serves as the base name for the documentation files.
+# The default CONFIG-FILE is "$(srcdir)/Doxyfile" and OUTPUT-DOC-DIR is
+# "doxygen-doc".
+# More arguments are interpreted as interleaved CONFIG-FILE and
+# OUTPUT-DOC-DIR values.
+AC_DEFUN([DX_INIT_DOXYGEN], [
+
+# Files:
+AC_SUBST([DX_PROJECT], [$1])
+AC_SUBST([DX_CONFIG], ['ifelse([$2], [], [$(srcdir)/Doxyfile], [$2])'])
+AC_SUBST([DX_DOCDIR], ['ifelse([$3], [], [doxygen-doc], [$3])'])
+m4_if(m4_eval(3 < m4_count($@)), 1, [m4_for([DX_i], 4, m4_count($@), 2,
+ [AC_SUBST([DX_CONFIG]m4_eval(DX_i[/2]),
+ 'm4_default_nblank_quoted(m4_argn(DX_i, $@),
+ [$(srcdir)/Doxyfile])')])])dnl
+m4_if(m4_eval(3 < m4_count($@)), 1, [m4_for([DX_i], 5, m4_count($@,), 2,
+ [AC_SUBST([DX_DOCDIR]m4_eval([(]DX_i[-1)/2]),
+ 'm4_default_nblank_quoted(m4_argn(DX_i, $@),
+ [doxygen-doc])')])])dnl
+m4_define([DX_loop], m4_dquote(m4_if(m4_eval(3 < m4_count($@)), 1,
+ [m4_for([DX_i], 4, m4_count($@), 2, [, m4_eval(DX_i[/2])])],
+ [])))dnl
+
+# Environment variables used inside doxygen.cfg:
+DX_ENV_APPEND(SRCDIR, $srcdir)
+DX_ENV_APPEND(PROJECT, $DX_PROJECT)
+DX_ENV_APPEND(VERSION, $PACKAGE_VERSION)
+
+# Doxygen itself:
+DX_ARG_ABLE(doc, [generate any doxygen documentation],
+ [],
+ [],
+ [DX_REQUIRE_PROG([DX_DOXYGEN], doxygen)
+ DX_REQUIRE_PROG([DX_PERL], perl)],
+ [DX_ENV_APPEND(PERL_PATH, $DX_PERL)])
+
+# Dot for graphics:
+DX_ARG_ABLE(dot, [generate graphics for doxygen documentation],
+ [DX_CHECK_DEPEND(doc, 1)],
+ [DX_CLEAR_DEPEND(doc, 1)],
+ [DX_REQUIRE_PROG([DX_DOT], dot)],
+ [DX_ENV_APPEND(HAVE_DOT, YES)
+ DX_ENV_APPEND(DOT_PATH, [`DX_DIRNAME_EXPR($DX_DOT)`])],
+ [DX_ENV_APPEND(HAVE_DOT, NO)])
+
+# Man pages generation:
+DX_ARG_ABLE(man, [generate doxygen manual pages],
+ [DX_CHECK_DEPEND(doc, 1)],
+ [DX_CLEAR_DEPEND(doc, 1)],
+ [],
+ [DX_ENV_APPEND(GENERATE_MAN, YES)],
+ [DX_ENV_APPEND(GENERATE_MAN, NO)])
+
+# RTF file generation:
+DX_ARG_ABLE(rtf, [generate doxygen RTF documentation],
+ [DX_CHECK_DEPEND(doc, 1)],
+ [DX_CLEAR_DEPEND(doc, 1)],
+ [],
+ [DX_ENV_APPEND(GENERATE_RTF, YES)],
+ [DX_ENV_APPEND(GENERATE_RTF, NO)])
+
+# XML file generation:
+DX_ARG_ABLE(xml, [generate doxygen XML documentation],
+ [DX_CHECK_DEPEND(doc, 1)],
+ [DX_CLEAR_DEPEND(doc, 1)],
+ [],
+ [DX_ENV_APPEND(GENERATE_XML, YES)],
+ [DX_ENV_APPEND(GENERATE_XML, NO)])
+
+# (Compressed) HTML help generation:
+DX_ARG_ABLE(chm, [generate doxygen compressed HTML help documentation],
+ [DX_CHECK_DEPEND(doc, 1)],
+ [DX_CLEAR_DEPEND(doc, 1)],
+ [DX_REQUIRE_PROG([DX_HHC], hhc)],
+ [DX_ENV_APPEND(HHC_PATH, $DX_HHC)
+ DX_ENV_APPEND(GENERATE_HTML, YES)
+ DX_ENV_APPEND(GENERATE_HTMLHELP, YES)],
+ [DX_ENV_APPEND(GENERATE_HTMLHELP, NO)])
+
+# Separate CHI file generation.
+DX_ARG_ABLE(chi, [generate doxygen separate compressed HTML help index file],
+ [DX_CHECK_DEPEND(chm, 1)],
+ [DX_CLEAR_DEPEND(chm, 1)],
+ [],
+ [DX_ENV_APPEND(GENERATE_CHI, YES)],
+ [DX_ENV_APPEND(GENERATE_CHI, NO)])
+
+# Plain HTML pages generation:
+DX_ARG_ABLE(html, [generate doxygen plain HTML documentation],
+ [DX_CHECK_DEPEND(doc, 1) DX_CHECK_DEPEND(chm, 0)],
+ [DX_CLEAR_DEPEND(doc, 1) DX_CLEAR_DEPEND(chm, 0)],
+ [],
+ [DX_ENV_APPEND(GENERATE_HTML, YES)],
+ [DX_TEST_FEATURE(chm) || DX_ENV_APPEND(GENERATE_HTML, NO)])
+
+# PostScript file generation:
+DX_ARG_ABLE(ps, [generate doxygen PostScript documentation],
+ [DX_CHECK_DEPEND(doc, 1)],
+ [DX_CLEAR_DEPEND(doc, 1)],
+ [DX_REQUIRE_PROG([DX_LATEX], latex)
+ DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex)
+ DX_REQUIRE_PROG([DX_DVIPS], dvips)
+ DX_REQUIRE_PROG([DX_EGREP], egrep)])
+
+# PDF file generation:
+DX_ARG_ABLE(pdf, [generate doxygen PDF documentation],
+ [DX_CHECK_DEPEND(doc, 1)],
+ [DX_CLEAR_DEPEND(doc, 1)],
+ [DX_REQUIRE_PROG([DX_PDFLATEX], pdflatex)
+ DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex)
+ DX_REQUIRE_PROG([DX_EGREP], egrep)])
+
+# LaTeX generation for PS and/or PDF:
+if DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf); then
+ DX_ENV_APPEND(GENERATE_LATEX, YES)
+else
+ DX_ENV_APPEND(GENERATE_LATEX, NO)
+fi
+
+# Paper size for PS and/or PDF:
+AC_ARG_VAR(DOXYGEN_PAPER_SIZE,
+ [a4wide (default), a4, letter, legal or executive])
+case "$DOXYGEN_PAPER_SIZE" in
+#(
+"")
+ AC_SUBST(DOXYGEN_PAPER_SIZE, "")
+;; #(
+a4wide|a4|letter|legal|executive)
+ DX_ENV_APPEND(PAPER_SIZE, $DOXYGEN_PAPER_SIZE)
+;; #(
+*)
+ AC_MSG_ERROR([unknown DOXYGEN_PAPER_SIZE='$DOXYGEN_PAPER_SIZE'])
+;;
+esac
+
+# Rules:
+AS_IF([[test $DX_FLAG_html -eq 1]],
+[[DX_SNIPPET_html="## ------------------------------- ##
+## Rules specific for HTML output. ##
+## ------------------------------- ##
+
+DX_CLEAN_HTML = \$(DX_DOCDIR)/html]dnl
+m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
+ \$(DX_DOCDIR]DX_i[)/html]])[
+
+"]],
+[[DX_SNIPPET_html=""]])
+AS_IF([[test $DX_FLAG_chi -eq 1]],
+[[DX_SNIPPET_chi="
+DX_CLEAN_CHI = \$(DX_DOCDIR)/\$(PACKAGE).chi]dnl
+m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
+ \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).chi]])["]],
+[[DX_SNIPPET_chi=""]])
+AS_IF([[test $DX_FLAG_chm -eq 1]],
+[[DX_SNIPPET_chm="## ------------------------------ ##
+## Rules specific for CHM output. ##
+## ------------------------------ ##
+
+DX_CLEAN_CHM = \$(DX_DOCDIR)/chm]dnl
+m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
+ \$(DX_DOCDIR]DX_i[)/chm]])[\
+${DX_SNIPPET_chi}
+
+"]],
+[[DX_SNIPPET_chm=""]])
+AS_IF([[test $DX_FLAG_man -eq 1]],
+[[DX_SNIPPET_man="## ------------------------------ ##
+## Rules specific for MAN output. ##
+## ------------------------------ ##
+
+DX_CLEAN_MAN = \$(DX_DOCDIR)/man]dnl
+m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
+ \$(DX_DOCDIR]DX_i[)/man]])[
+
+"]],
+[[DX_SNIPPET_man=""]])
+AS_IF([[test $DX_FLAG_rtf -eq 1]],
+[[DX_SNIPPET_rtf="## ------------------------------ ##
+## Rules specific for RTF output. ##
+## ------------------------------ ##
+
+DX_CLEAN_RTF = \$(DX_DOCDIR)/rtf]dnl
+m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
+ \$(DX_DOCDIR]DX_i[)/rtf]])[
+
+"]],
+[[DX_SNIPPET_rtf=""]])
+AS_IF([[test $DX_FLAG_xml -eq 1]],
+[[DX_SNIPPET_xml="## ------------------------------ ##
+## Rules specific for XML output. ##
+## ------------------------------ ##
+
+DX_CLEAN_XML = \$(DX_DOCDIR)/xml]dnl
+m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
+ \$(DX_DOCDIR]DX_i[)/xml]])[
+
+"]],
+[[DX_SNIPPET_xml=""]])
+AS_IF([[test $DX_FLAG_ps -eq 1]],
+[[DX_SNIPPET_ps="## ----------------------------- ##
+## Rules specific for PS output. ##
+## ----------------------------- ##
+
+DX_CLEAN_PS = \$(DX_DOCDIR)/\$(PACKAGE).ps]dnl
+m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
+ \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).ps]])[
+
+DX_PS_GOAL = doxygen-ps
+
+doxygen-ps: \$(DX_CLEAN_PS)
+
+]m4_foreach([DX_i], [DX_loop],
+[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).ps: \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag
+ \$(DX_V_LATEX)cd \$(DX_DOCDIR]DX_i[)/latex; \\
+ rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \\
+ \$(DX_LATEX) refman.tex; \\
+ \$(DX_MAKEINDEX) refman.idx; \\
+ \$(DX_LATEX) refman.tex; \\
+ countdown=5; \\
+ while \$(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \\
+ refman.log > /dev/null 2>&1 \\
+ && test \$\$countdown -gt 0; do \\
+ \$(DX_LATEX) refman.tex; \\
+ countdown=\`expr \$\$countdown - 1\`; \\
+ done; \\
+ \$(DX_DVIPS) -o ../\$(PACKAGE).ps refman.dvi
+
+]])["]],
+[[DX_SNIPPET_ps=""]])
+AS_IF([[test $DX_FLAG_pdf -eq 1]],
+[[DX_SNIPPET_pdf="## ------------------------------ ##
+## Rules specific for PDF output. ##
+## ------------------------------ ##
+
+DX_CLEAN_PDF = \$(DX_DOCDIR)/\$(PACKAGE).pdf]dnl
+m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
+ \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).pdf]])[
+
+DX_PDF_GOAL = doxygen-pdf
+
+doxygen-pdf: \$(DX_CLEAN_PDF)
+
+]m4_foreach([DX_i], [DX_loop],
+[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).pdf: \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag
+ \$(DX_V_LATEX)cd \$(DX_DOCDIR]DX_i[)/latex; \\
+ rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \\
+ \$(DX_PDFLATEX) refman.tex; \\
+ \$(DX_MAKEINDEX) refman.idx; \\
+ \$(DX_PDFLATEX) refman.tex; \\
+ countdown=5; \\
+ while \$(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \\
+ refman.log > /dev/null 2>&1 \\
+ && test \$\$countdown -gt 0; do \\
+ \$(DX_PDFLATEX) refman.tex; \\
+ countdown=\`expr \$\$countdown - 1\`; \\
+ done; \\
+ mv refman.pdf ../\$(PACKAGE).pdf
+
+]])["]],
+[[DX_SNIPPET_pdf=""]])
+AS_IF([[test $DX_FLAG_ps -eq 1 -o $DX_FLAG_pdf -eq 1]],
+[[DX_SNIPPET_latex="## ------------------------------------------------- ##
+## Rules specific for LaTeX (shared for PS and PDF). ##
+## ------------------------------------------------- ##
+
+DX_V_LATEX = \$(_DX_v_LATEX_\$(V))
+_DX_v_LATEX_ = \$(_DX_v_LATEX_\$(AM_DEFAULT_VERBOSITY))
+_DX_v_LATEX_0 = @echo \" LATEX \" \$][@;
+
+DX_CLEAN_LATEX = \$(DX_DOCDIR)/latex]dnl
+m4_foreach([DX_i], [m4_shift(DX_loop)], [[\\
+ \$(DX_DOCDIR]DX_i[)/latex]])[
+
+"]],
+[[DX_SNIPPET_latex=""]])
+
+AS_IF([[test $DX_FLAG_doc -eq 1]],
+[[DX_SNIPPET_doc="## --------------------------------- ##
+## Format-independent Doxygen rules. ##
+## --------------------------------- ##
+
+${DX_SNIPPET_html}\
+${DX_SNIPPET_chm}\
+${DX_SNIPPET_man}\
+${DX_SNIPPET_rtf}\
+${DX_SNIPPET_xml}\
+${DX_SNIPPET_ps}\
+${DX_SNIPPET_pdf}\
+${DX_SNIPPET_latex}\
+DX_V_DXGEN = \$(_DX_v_DXGEN_\$(V))
+_DX_v_DXGEN_ = \$(_DX_v_DXGEN_\$(AM_DEFAULT_VERBOSITY))
+_DX_v_DXGEN_0 = @echo \" DXGEN \" \$<;
+
+.PHONY: doxygen-run doxygen-doc \$(DX_PS_GOAL) \$(DX_PDF_GOAL)
+
+.INTERMEDIATE: doxygen-run \$(DX_PS_GOAL) \$(DX_PDF_GOAL)
+
+doxygen-run:]m4_foreach([DX_i], [DX_loop],
+ [[ \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag]])[
+
+doxygen-doc: doxygen-run \$(DX_PS_GOAL) \$(DX_PDF_GOAL)
+
+]m4_foreach([DX_i], [DX_loop],
+[[\$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag: \$(DX_CONFIG]DX_i[) \$(pkginclude_HEADERS)
+ \$(A""M_V_at)rm -rf \$(DX_DOCDIR]DX_i[)
+ \$(DX_V_DXGEN)\$(DX_ENV) DOCDIR=\$(DX_DOCDIR]DX_i[) \$(DX_DOXYGEN) \$(DX_CONFIG]DX_i[)
+ \$(A""M_V_at)echo Timestamp >\$][@
+
+]])dnl
+[DX_CLEANFILES = \\]
+m4_foreach([DX_i], [DX_loop],
+[[ \$(DX_DOCDIR]DX_i[)/doxygen_sqlite3.db \\
+ \$(DX_DOCDIR]DX_i[)/\$(PACKAGE).tag \\
+]])dnl
+[ -r \\
+ \$(DX_CLEAN_HTML) \\
+ \$(DX_CLEAN_CHM) \\
+ \$(DX_CLEAN_CHI) \\
+ \$(DX_CLEAN_MAN) \\
+ \$(DX_CLEAN_RTF) \\
+ \$(DX_CLEAN_XML) \\
+ \$(DX_CLEAN_PS) \\
+ \$(DX_CLEAN_PDF) \\
+ \$(DX_CLEAN_LATEX)"]],
+[[DX_SNIPPET_doc=""]])
+AC_SUBST([DX_RULES],
+["${DX_SNIPPET_doc}"])dnl
+AM_SUBST_NOTMAKE([DX_RULES])
+
+#For debugging:
+#echo DX_FLAG_doc=$DX_FLAG_doc
+#echo DX_FLAG_dot=$DX_FLAG_dot
+#echo DX_FLAG_man=$DX_FLAG_man
+#echo DX_FLAG_html=$DX_FLAG_html
+#echo DX_FLAG_chm=$DX_FLAG_chm
+#echo DX_FLAG_chi=$DX_FLAG_chi
+#echo DX_FLAG_rtf=$DX_FLAG_rtf
+#echo DX_FLAG_xml=$DX_FLAG_xml
+#echo DX_FLAG_pdf=$DX_FLAG_pdf
+#echo DX_FLAG_ps=$DX_FLAG_ps
+#echo DX_ENV=$DX_ENV
+])
--
2.28.0
3
7
[PATCH] kernel32/tests: Pass the correct size for PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE.
by Zebediah Figura 31 Aug '20
by Zebediah Figura 31 Aug '20
31 Aug '20
Fixes test failures on 64-bit Wine and Windows 10.
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com>
---
dlls/kernel32/tests/process.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c
index b794c8f0c09..b2441019e34 100644
--- a/dlls/kernel32/tests/process.c
+++ b/dlls/kernel32/tests/process.c
@@ -3887,7 +3887,7 @@ static void test_ProcThreadAttributeList(void)
expect_list.count++;
}
- ret = pUpdateProcThreadAttribute(&list, 0, PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE, handles, sizeof(PROCESSOR_NUMBER), NULL, NULL);
+ ret = pUpdateProcThreadAttribute(&list, 0, PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE, handles, sizeof(handles[0]), NULL, NULL);
ok(ret || broken(GetLastError() == ERROR_NOT_SUPPORTED), "got %d gle %d\n", ret, GetLastError());
if (ret)
--
2.28.0
1
0
31 Aug '20
This patch allows winecfg to be called with the "/v" parameter to
display the current Windows version. "/v winver" will continue to allow
the Windows version to be updated.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49242
Signed-off-by: Owen Rudge <orudge(a)codeweavers.com>
---
programs/winecfg/appdefaults.c | 24 +++++++++++++++++++++++-
programs/winecfg/main.c | 9 +++++++--
programs/winecfg/winecfg.h | 1 +
3 files changed, 31 insertions(+), 3 deletions(-)
1
0
[PATCH 1/2] winecfg: Ensure registry key is initialised before updating Windows version.
by Owen Rudge 31 Aug '20
by Owen Rudge 31 Aug '20
31 Aug '20
Signed-off-by: Owen Rudge <orudge(a)codeweavers.com>
---
programs/winecfg/main.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
1
0
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49749
Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com>
---
The unwind handler which is called from Windows clr.dll which after processing ACCESS_VIOLATION
exception sets the CONTEXT_XSTATE flag in unwind context (probably just copis the original
exception context at some moment which has this flag since 16ed88a95234d844fee9fc19053c5c7f618f92ba).
Meanwhile the CONTEXT_EX structure is garbage. The consequet NtSetContextThread() is crashing
trying to restore xstate from invalid location.
dlls/ntdll/signal_x86_64.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
index ba91cc13dfe..6fbb612825b 100644
--- a/dlls/ntdll/signal_x86_64.c
+++ b/dlls/ntdll/signal_x86_64.c
@@ -1244,7 +1244,9 @@ void WINAPI RtlUnwindEx( PVOID end_frame, PVOID target_ip, EXCEPTION_RECORD *rec
{
ULONG64 frame;
- *context = new_context = *dispatch.ContextRecord;
+ new_context = *dispatch.ContextRecord;
+ new_context.ContextFlags &= ~0x40;
+ *context = new_context;
dispatch.ContextRecord = context;
RtlVirtualUnwind( UNW_FLAG_NHANDLER, dispatch.ImageBase,
dispatch.ControlPc, dispatch.FunctionEntry,
@@ -1267,7 +1269,9 @@ void WINAPI RtlUnwindEx( PVOID end_frame, PVOID target_ip, EXCEPTION_RECORD *rec
teb_frame = __wine_pop_frame( teb_frame );
- *context = new_context = *dispatch.ContextRecord;
+ new_context = *dispatch.ContextRecord;
+ new_context.ContextFlags &= ~0x40;
+ *context = new_context;
dispatch.ContextRecord = context;
RtlVirtualUnwind( UNW_FLAG_NHANDLER, dispatch.ImageBase,
dispatch.ControlPc, dispatch.FunctionEntry,
--
2.26.2
2
1
Hello Zebediah,
starting with commit https://github.com/wine-mirror/wine/commit/9271efc0c746
there's a lot of log spam in ReactOS:
"RpcBindingFree returned 0x6a6"
So far I couldn't reproduce the error in Wine though.
I'm attaching a proposed patch that fixes the issue. Could you please take a
look on whether the attached patch would be suitable for inclusion into Wine,
or whether that problem points to another underlying issue?
Regards,
Fabian Maurer
2
1