All pastes #329638 Raw Edit

Mine

public text v1 · immutable
#329638 ·published 2007-01-26 22:21 UTC
rendered paste body
#include    <stdio.h>
#include    <stdlib.h>
#include    <d3d9.h>

void dump_caps(FILE *out, D3DCAPS9 *c)
{
    fprintf(out, "static void init_caps(WINED3DCAPS *caps) {\n");
    fprintf(out, "    *caps->DeviceType = %#x;\n", c->DeviceType);
    fprintf(out, "    *caps->AdapterOrdinal = %#x;\n", c->AdapterOrdinal);
    fprintf(out, "    *caps->Caps = %#x;\n", c->Caps);
    fprintf(out, "    *caps->Caps2 = %#x;\n", c->Caps2);
    fprintf(out, "    *caps->Caps3 = %#x;\n", c->Caps3);
    fprintf(out, "    *caps->PresentationIntervals = %#x;\n", c->PresentationIntervals);
    fprintf(out, "    *caps->CursorCaps = %#x;\n", c->CursorCaps);
    fprintf(out, "    *caps->DevCaps = %#x;\n", c->DevCaps);
    fprintf(out, "    *caps->PrimitiveMiscCaps = %#x;\n", c->PrimitiveMiscCaps);
    fprintf(out, "    *caps->RasterCaps = %#x;\n", c->RasterCaps);
    fprintf(out, "    *caps->ZCmpCaps = %#x;\n", c->ZCmpCaps);
    fprintf(out, "    *caps->SrcBlendCaps = %#x;\n", c->SrcBlendCaps);
    fprintf(out, "    *caps->DestBlendCaps = %#x;\n", c->DestBlendCaps);
    fprintf(out, "    *caps->AlphaCmpCaps = %#x;\n", c->AlphaCmpCaps);
    fprintf(out, "    *caps->ShadeCaps = %#x;\n", c->ShadeCaps);
    fprintf(out, "    *caps->TextureCaps = %#x;\n", c->TextureCaps);
    fprintf(out, "    *caps->TextureFilterCaps = %#x;\n", c->TextureFilterCaps);
    fprintf(out, "    *caps->CubeTextureFilterCaps = %#x;\n", c->CubeTextureFilterCaps);
    fprintf(out, "    *caps->VolumeTextureFilterCaps = %#x;\n", c->VolumeTextureFilterCaps);
    fprintf(out, "    *caps->TextureAddressCaps = %#x;\n", c->TextureAddressCaps);
    fprintf(out, "    *caps->VolumeTextureAddressCaps = %#x;\n", c->VolumeTextureAddressCaps);
    fprintf(out, "    *caps->LineCaps = %#x;\n", c->LineCaps);
    fprintf(out, "    *caps->MaxTextureWidth = %#x;\n", c->MaxTextureWidth);
    fprintf(out, "    *caps->MaxTextureHeight = %#x;\n", c->MaxTextureHeight);
    fprintf(out, "    *caps->MaxVolumeExtent = %#x;\n", c->MaxVolumeExtent);
    fprintf(out, "    *caps->MaxTextureRepeat = %#x;\n", c->MaxTextureRepeat);
    fprintf(out, "    *caps->MaxTextureAspectRatio = %#x;\n", c->MaxTextureAspectRatio);
    fprintf(out, "    *caps->MaxAnisotropy = %#x;\n", c->MaxAnisotropy);
    fprintf(out, "    *caps->MaxVertexW = %ff;\n", c->MaxVertexW);
    fprintf(out, "    *caps->GuardBandLeft = %ff;\n", c->GuardBandLeft);
    fprintf(out, "    *caps->GuardBandTop = %ff;\n", c->GuardBandTop);
    fprintf(out, "    *caps->GuardBandRight = %ff;\n", c->GuardBandRight);
    fprintf(out, "    *caps->GuardBandBottom = %ff;\n", c->GuardBandBottom);
    fprintf(out, "    *caps->ExtentsAdjust = %ff;\n", c->ExtentsAdjust);
    fprintf(out, "    *caps->StencilCaps = %#x;\n", c->StencilCaps);
    fprintf(out, "    *caps->FVFCaps = %#x;\n", c->FVFCaps);
    fprintf(out, "    *caps->TextureOpCaps = %#x;\n", c->TextureOpCaps);
    fprintf(out, "    *caps->MaxTextureBlendStages = %#x;\n", c->MaxTextureBlendStages);
    fprintf(out, "    *caps->MaxSimultaneousTextures = %#x;\n", c->MaxSimultaneousTextures);
    fprintf(out, "    *caps->VertexProcessingCaps = %#x;\n", c->VertexProcessingCaps);
    fprintf(out, "    *caps->MaxActiveLights = %#x;\n", c->MaxActiveLights);
    fprintf(out, "    *caps->MaxUserClipPlanes = %#x;\n", c->MaxUserClipPlanes);
    fprintf(out, "    *caps->MaxVertexBlendMatrices = %#x;\n", c->MaxVertexBlendMatrices);
    fprintf(out, "    *caps->MaxVertexBlendMatrixIndex = %#x;\n", c->MaxVertexBlendMatrixIndex);
    fprintf(out, "    *caps->MaxPointSize = %ff;\n", c->MaxPointSize);
    fprintf(out, "    *caps->MaxPrimitiveCount = %#x;\n", c->MaxPrimitiveCount);
    fprintf(out, "    *caps->MaxVertexIndex = %#x;\n", c->MaxVertexIndex);
    fprintf(out, "    *caps->MaxStreams = %#x;\n", c->MaxStreams);
    fprintf(out, "    *caps->MaxStreamStride = %#x;\n", c->MaxStreamStride);
    fprintf(out, "    *caps->VertexShaderVersion = %#x;\n", c->VertexShaderVersion);
    fprintf(out, "    *caps->MaxVertexShaderConst = %#x;\n", c->MaxVertexShaderConst);
    fprintf(out, "    *caps->PixelShaderVersion = %#x;\n", c->PixelShaderVersion);
    fprintf(out, "    *caps->PixelShader1xMaxValue = %ff;\n", c->PixelShader1xMaxValue);
    fprintf(out, "    *caps->DevCaps2 = %#x;\n", c->DevCaps2);
    fprintf(out, "    *caps->MaxNpatchTessellationLevel = %ff;\n", c->MaxNpatchTessellationLevel);
    fprintf(out, "    *caps->MasterAdapterOrdinal = %#x;\n", c->MasterAdapterOrdinal);
    fprintf(out, "    *caps->AdapterOrdinalInGroup = %#x;\n", c->AdapterOrdinalInGroup);
    fprintf(out, "    *caps->NumberOfAdaptersInGroup = %#x;\n", c->NumberOfAdaptersInGroup);
    fprintf(out, "    *caps->DeclTypes = %#x;\n", c->DeclTypes);
    fprintf(out, "    *caps->NumSimultaneousRTs = %#x;\n", c->NumSimultaneousRTs);
    fprintf(out, "    *caps->StretchRectFilterCaps = %#x;\n", c->StretchRectFilterCaps);
    fprintf(out, "    *caps->VS20Caps.Caps = %#x;\n", c->VS20Caps.Caps);
    fprintf(out, "    *caps->VS20Caps.DynamicFlowControlDepth = %#x;\n", c->VS20Caps.DynamicFlowControlDepth);
    fprintf(out, "    *caps->VS20Caps.NumTemps = %#x;\n", c->VS20Caps.NumTemps);
    fprintf(out, "    *caps->VS20Caps.StaticFlowControlDepth = %#x;\n", c->VS20Caps.StaticFlowControlDepth);
    fprintf(out, "    *caps->PS20Caps.Caps = %#x;\n", c->PS20Caps.Caps);
    fprintf(out, "    *caps->PS20Caps.DynamicFlowControlDepth = %#x;\n", c->PS20Caps.DynamicFlowControlDepth);
    fprintf(out, "    *caps->PS20Caps.NumTemps = %#x;\n", c->PS20Caps.NumTemps);
    fprintf(out, "    *caps->PS20Caps.StaticFlowControlDepth = %#x;\n", c->PS20Caps.StaticFlowControlDepth);
    fprintf(out, "    *caps->PS20Caps.NumInstructionSlots = %#x;\n", c->PS20Caps.NumInstructionSlots);
    fprintf(out, "    *caps->VertexTextureFilterCaps = %#x;\n", c->VertexTextureFilterCaps);
    fprintf(out, "    *caps->MaxVShaderInstructionsExecuted = %#x;\n", c->MaxVShaderInstructionsExecuted);
    fprintf(out, "    *caps->MaxPShaderInstructionsExecuted = %#x;\n", c->MaxPShaderInstructionsExecuted);
    fprintf(out, "    *caps->MaxVertexShader30InstructionSlots = %#x;\n", c->MaxVertexShader30InstructionSlots);
    fprintf(out, "    *caps->MaxPixelShader30InstructionSlots = %#x;\n", c->MaxPixelShader30InstructionSlots);
    fprintf(out, "}\n");
}

int main(void)
{
    HMODULE d3d9_handle;
    IDirect3D9 * (__stdcall * d3d9_create)(UINT SDKVersion) = 0;
    IDirect3D9 *d3d9_ptr = 0;
    D3DCAPS9 caps;

    d3d9_handle = LoadLibraryA("d3d9.dll");
    if (!d3d9_handle)
    {
        fprintf(stderr, "Failed to load d3d9.dll\n");
        return EXIT_FAILURE;
    }

    d3d9_create = (void *)GetProcAddress(d3d9_handle, "Direct3DCreate9");
    if (!d3d9_create)
    {
        fprintf(stderr, "Failed to resolve Direct3DCreate9\n");
        return EXIT_FAILURE;
    }

    d3d9_ptr = d3d9_create(D3D_SDK_VERSION);
    if (!d3d9_ptr)
    {
        fprintf(stderr, "Failed to create IDirect3D9 object\n");
        return EXIT_FAILURE;
    }

    IDirect3D9_GetDeviceCaps(d3d9_ptr, 0, D3DDEVTYPE_HAL, &caps);
    dump_caps(stdout, &caps);

    return EXIT_SUCCESS;
}