microsoft / vscode-cpptools

Official repository for the Microsoft C/C++ extension for VS Code.
Other
5.52k stars 1.55k forks source link

Overloaded function defined twice according to intellisense #6135

Open H0stman opened 4 years ago

H0stman commented 4 years ago

image Error pointing to same line twice. Cpptools v. 1.0.0

sean-mcmanus commented 4 years ago

What header are you including to get XMMatrixRotationRollPitchYaw? I'm not reproing the issue when including DirectXMath.h. The output of C/C++: Log Diagnostics could help as well.

H0stman commented 4 years ago

define UNICODE

define DEBUG

include // D3D interface

include // shader compiler

include

include

include "WICTextureLoader.h"

This is all of my includes.

Log diagnostics: cpptools/didChangeCppProperties Attempting to get defaults from compiler found on the machine: 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Tools/MSVC/14.27.29110/bin/Hostx64/x64/cl.exe' Code browsing service initialized Attempting to get defaults from compiler found on the machine: 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Tools/MSVC/14.27.29110/bin/Hostx64/x64/cl.exe' Folder: C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO/2019/ENTERPRISE/VC/TOOLS/MSVC/14.27.29110/INCLUDE/ will be indexed Folder: C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO/2019/ENTERPRISE/VC/TOOLS/MSVC/14.27.29110/ATLMFC/INCLUDE/ will be indexed Folder: C:/PROGRAM FILES (X86)/WINDOWS KITS/10/INCLUDE/10.0.18362.0/UM/ will be indexed Folder: C:/PROGRAM FILES (X86)/WINDOWS KITS/10/INCLUDE/10.0.18362.0/UCRT/ will be indexed Folder: C:/PROGRAM FILES (X86)/WINDOWS KITS/10/INCLUDE/10.0.18362.0/SHARED/ will be indexed Folder: C:/PROGRAM FILES (X86)/WINDOWS KITS/10/INCLUDE/10.0.18362.0/WINRT/ will be indexed Folder: C:/PROGRAM FILES (X86)/WINDOWS KITS/10/INCLUDE/10.0.18362.0/CPPWINRT/ will be indexed Folder: C:/USERS/OSCAR/ONEDRIVE - BTH STUDENT/3D PROGRAMMERING/HELLO TRIANGLE/ will be indexed textDocument/didOpen: file:///c%3A/Users/oscar/OneDrive%20-%20BTH%20Student/3D%20Programmering/Hello%20Triangle/Source/Main.cpp Populate include completion cache. Discovering files... cpptools/activeDocumentChange: file:///c%3A/Users/oscar/OneDrive%20-%20BTH%20Student/3D%20Programmering/Hello%20Triangle/Source/Main.cpp cpptools/textEditorSelectionChange cpptools/getDocumentSymbols: file:///c%3A/Users/oscar/OneDrive%20-%20BTH%20Student/3D%20Programmering/Hello%20Triangle/Source/Main.cpp (id: 2) cpptools/getCodeActions: file:///c%3A/Users/oscar/OneDrive%20-%20BTH%20Student/3D%20Programmering/Hello%20Triangle/Source/Main.cpp (id: 3) cpptools/getDocumentSymbols Processing folder (non-recursive): C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO/2019/ENTERPRISE/VC/TOOLS/MSVC/14.27.29110/INCLUDE Processing folder (non-recursive): C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO/2019/ENTERPRISE/VC/TOOLS/MSVC/14.27.29110/ATLMFC/INCLUDE Processing folder (recursive): C:/PROGRAM FILES (X86)/WINDOWS KITS/10/INCLUDE/10.0.18362.0/UM/ idle loop: reparsing the active document Checking for syntax errors: file:///c%3A/Users/oscar/OneDrive%20-%20BTH%20Student/3D%20Programmering/Hello%20Triangle/Source/Main.cpp sending compilation args for C:\USERS\OSCAR\ONEDRIVE - BTH STUDENT\3D PROGRAMMERING\HELLO TRIANGLE\SOURCE\MAIN.CPP include: C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2019\ENTERPRISE\VC\TOOLS\MSVC\14.27.29110\INCLUDE include: C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2019\ENTERPRISE\VC\TOOLS\MSVC\14.27.29110\ATLMFC\INCLUDE include: C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.18362.0\UM include: C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.18362.0\UCRT include: C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.18362.0\SHARED include: C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.18362.0\WINRT include: C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.18362.0\CPPWINRT include: C:\USERS\OSCAR\ONEDRIVE - BTH STUDENT\3D PROGRAMMERING\HELLO TRIANGLE\INCLUDES\XTK define: _DEBUG define: UNICODE define: _UNICODE stdver: ms_c++17 intelliSenseMode: msvc-x64 Queueing IntelliSense update for files in translation unit of: C:\USERS\OSCAR\ONEDRIVE - BTH STUDENT\3D PROGRAMMERING\HELLO TRIANGLE\SOURCE\MAIN.CPP Processing folder (recursive): C:/PROGRAM FILES (X86)/WINDOWS KITS/10/INCLUDE/10.0.18362.0/UCRT/ Processing folder (recursive): C:/PROGRAM FILES (X86)/WINDOWS KITS/10/INCLUDE/10.0.18362.0/SHARED/ Processing folder (recursive): C:/PROGRAM FILES (X86)/WINDOWS KITS/10/INCLUDE/10.0.18362.0/WINRT/ Processing folder (recursive): C:/PROGRAM FILES (X86)/WINDOWS KITS/10/INCLUDE/10.0.18362.0/CPPWINRT/ cpptools/getFoldingRanges: file:///c%3A/Users/oscar/OneDrive%20-%20BTH%20Student/3D%20Programmering/Hello%20Triangle/Source/Main.cpp (id: 4) Processing folder (recursive): C:/USERS/OSCAR/ONEDRIVE - BTH STUDENT/3D PROGRAMMERING/HELLO TRIANGLE/ cpptools/getSemanticTokens: file:///c%3A/Users/oscar/OneDrive%20-%20BTH%20Student/3D%20Programmering/Hello%20Triangle/Source/Main.cpp (id: 5) Discovering files: 5310 file(s) processed 1 file(s) removed from database Done discovering files. Parsing remaining files... Parsing: 0 files(s) processed Done parsing remaining files. cpptools/getFoldingRanges: file:///c%3A/Users/oscar/OneDrive%20-%20BTH%20Student/3D%20Programmering/Hello%20Triangle/Source/Main.cpp (id: 6) cpptools/getCodeActions: file:///c%3A/Users/oscar/OneDrive%20-%20BTH%20Student/3D%20Programmering/Hello%20Triangle/Source/Main.cpp (id: 7) cpptools/fileCreated: file:///c%3A/Users/oscar/AppData/Roaming/Code/logs/20200915T134753/sharedprocess.log textDocument/hover: file:///c%3A/Users/oscar/OneDrive%20-%20BTH%20Student/3D%20Programmering/Hello%20Triangle/Source/Main.cpp (id: 8) Checking for syntax errors: file:///c%3A/Users/oscar/OneDrive%20-%20BTH%20Student/3D%20Programmering/Hello%20Triangle/Source/Main.cpp Queueing IntelliSense update for files in translation unit of: C:\USERS\OSCAR\ONEDRIVE - BTH STUDENT\3D PROGRAMMERING\HELLO TRIANGLE\SOURCE\MAIN.CPP cpptools/fileCreated: file:///c%3A/Users/oscar/AppData/Roaming/Code/logs/20200915T134753/telemetry.log cpptools/fileCreated: file:///c%3A/Users/oscar/AppData/Roaming/Code/logs/20200915T134753/userDataSync.log Checking for syntax errors: file:///c%3A/Users/oscar/OneDrive%20-%20BTH%20Student/3D%20Programmering/Hello%20Triangle/Source/Main.cpp Queueing IntelliSense update for files in translation unit of: C:\USERS\OSCAR\ONEDRIVE - BTH STUDENT\3D PROGRAMMERING\HELLO TRIANGLE\SOURCE\MAIN.CPP cpptools/finishUpdateSquiggles Error squiggle count: 1 Update IntelliSense time (sec): 3.013 textDocument/hover: file:///c%3A/Users/oscar/OneDrive%20-%20BTH%20Student/3D%20Programmering/Hello%20Triangle/Source/Main.cpp (id: 9) cpptools/getCodeActions: file:///c%3A/Users/oscar/OneDrive%20-%20BTH%20Student/3D%20Programmering/Hello%20Triangle/Source/Main.cpp (id: 10) Database safe to open cpptools/getCodeActions: file:///c%3A/Users/oscar/OneDrive%20-%20BTH%20Student/3D%20Programmering/Hello%20Triangle/Source/Main.cpp (id: 11) textDocument/hover: file:///c%3A/Users/oscar/OneDrive%20-%20BTH%20Student/3D%20Programmering/Hello%20Triangle/Source/Main.cpp (id: 12) cpptools/getCodeActions: file:///c%3A/Users/oscar/OneDrive%20-%20BTH%20Student/3D%20Programmering/Hello%20Triangle/Source/Main.cpp (id: 13)

sean-mcmanus commented 4 years ago

I repro the issue when my code uses "using namespace DirectX" which puts 2 ambiguous calls in to the global scope. Does your code compiler? Can you remove the "using namespace DirectX" or use DirectX::XMMatrixRotationRollPitchYaw ?

H0stman commented 4 years ago

Yes, i was using namespace DirectX and when I added DirectX:: in front of XMMatrixRotationRollPitchYaw it stopped giving me an error.

sean-mcmanus commented 4 years ago

Can this issue be closed? Or do you think our IntelliSense is behaving incorrectly still?

H0stman commented 4 years ago

I mean, i don't know if I'm doing something wrong or if it is the plugin. But it seems odd to me that when a have the statement "using namespace DirectX" everything that is in that namespace behaves correctly except for that one function. I call other functions from the DirectXMath library and they don't give me any red squiggles. So I would assume that there is a bug.

H0stman commented 4 years ago

Here is the entire file

#define UNICODE
#define DEBUG
#include <d3d11_4.h>         // D3D interface
#include <d3dcompiler.h> // shader compiler
#include <DirectXMath.h>
#include <winerror.h>
#include "WICTextureLoader.h"

using namespace DirectX;

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

ID3D11Device* device_ptr = nullptr;
ID3D11DeviceContext* device_context_ptr = nullptr;
IDXGISwapChain* swap_chain_ptr = nullptr;
ID3D11RenderTargetView* render_target_view_ptr = nullptr;

INT APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow)
{
    // Register the window class.
    LPWSTR CLASS_NAME = L"Sample Window Class";
    WNDCLASS wc = {};
    wc.lpfnWndProc = WindowProc;
    wc.hInstance = hInstance;
    wc.lpszClassName = CLASS_NAME;
    RegisterClass(&wc);
    OutputDebugStringW(lpCmdLine);

    // Create the window.
    HWND hwnd = CreateWindowEx(
        0,                       // Optional window styles.
        CLASS_NAME,          // Window class
        L"Hello Triangle!",  // Window text
        WS_OVERLAPPEDWINDOW, // Window style

        // Size and position
        CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
        nullptr,    // Parent window
        nullptr,    // Menu
        hInstance, // Instance handle
        nullptr     // Additional application data
    );

    if (!hwnd)
        return 0;

    ShowWindow(hwnd, nCmdShow);

    DXGI_SWAP_CHAIN_DESC swap_chain_descr = { 0 };
    swap_chain_descr.BufferDesc.RefreshRate.Numerator = 0;
    swap_chain_descr.BufferDesc.RefreshRate.Denominator = 1;
    swap_chain_descr.BufferDesc.Format = DXGI_FORMAT_B8G8R8A8_UNORM;
    swap_chain_descr.SampleDesc.Count = 1;
    swap_chain_descr.SampleDesc.Quality = 0;
    swap_chain_descr.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
    swap_chain_descr.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD;
    swap_chain_descr.BufferCount = 2;
    swap_chain_descr.OutputWindow = hwnd;
    swap_chain_descr.Windowed = true;

    D3D_FEATURE_LEVEL feature_level[] = { D3D_FEATURE_LEVEL_11_1 };
    UINT flags = D3D11_CREATE_DEVICE_SINGLETHREADED;
#if defined(DEBUG) || defined(_DEBUG)
    flags |= D3D11_CREATE_DEVICE_DEBUG;
#endif
    HRESULT hr = D3D11CreateDeviceAndSwapChain(nullptr, D3D_DRIVER_TYPE_HARDWARE, nullptr, flags, nullptr, 0, D3D11_SDK_VERSION, &swap_chain_descr, &swap_chain_ptr, &device_ptr, feature_level, &device_context_ptr);
    assert(S_OK == hr && swap_chain_ptr && device_ptr && device_context_ptr);

    ID3D11Texture2D* framebuffer;
    hr = swap_chain_ptr->GetBuffer(0, __uuidof(ID3D11Texture2D), (VOID**)&framebuffer);
    assert(SUCCEEDED(hr));

    hr = device_ptr->CreateRenderTargetView(framebuffer, 0, &render_target_view_ptr);
    assert(SUCCEEDED(hr));

    flags = D3DCOMPILE_ENABLE_STRICTNESS | D3DCOMPILE_WARNINGS_ARE_ERRORS;
#if defined(DEBUG) || defined(_DEBUG)
    flags |= D3DCOMPILE_DEBUG; // add more debug output
#endif
    ID3DBlob* vs_blob_ptr = nullptr, * ps_blob_ptr = nullptr, * error_blob = nullptr;

    // COMPILE VERTEX SHADER
    hr = D3DCompileFromFile(L"..\\Shaders\\shaders.hlsl", nullptr, D3D_COMPILE_STANDARD_FILE_INCLUDE, "vs_main", "vs_5_0", flags, 0, &vs_blob_ptr, &error_blob);

    LPWSTR messageBuffer;
    DWORD size = FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_ALLOCATE_BUFFER, nullptr, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPWSTR)&messageBuffer, 0, nullptr);
    OutputDebugStringW(messageBuffer);

    if (FAILED(hr))
    {
        if (error_blob)
        {
            OutputDebugStringA((PCSTR)error_blob->GetBufferPointer());
            error_blob->Release();
        }
        if (vs_blob_ptr)
            vs_blob_ptr->Release();
        assert(false);
    }

    // COMPILE PIXEL SHADER
    hr = D3DCompileFromFile(L"..\\Shaders\\shaders.hlsl", nullptr, D3D_COMPILE_STANDARD_FILE_INCLUDE, "ps_main", "ps_5_0", flags, 0, &ps_blob_ptr, &error_blob);
    if (FAILED(hr))
    {
        if (error_blob)
        {
            OutputDebugStringA((PCSTR)error_blob->GetBufferPointer());
            error_blob->Release();
        }
        if (ps_blob_ptr)
            ps_blob_ptr->Release();
        assert(false);
    }

    ID3D11VertexShader* vertex_shader_ptr;
    ID3D11PixelShader* pixel_shader_ptr;

    hr = device_ptr->CreateVertexShader(vs_blob_ptr->GetBufferPointer(), vs_blob_ptr->GetBufferSize(), nullptr, &vertex_shader_ptr);
    assert(SUCCEEDED(hr));

    hr = device_ptr->CreatePixelShader(ps_blob_ptr->GetBufferPointer(), ps_blob_ptr->GetBufferSize(), nullptr, &pixel_shader_ptr);
    assert(SUCCEEDED(hr));

    // Vertex information

    ID3D11InputLayout* input_layout_ptr;
    D3D11_INPUT_ELEMENT_DESC inputElementDesc[] =
    {
         {"POS", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0},
         {"TEX", 0, DXGI_FORMAT_R32G32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0},
         {"NOR", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0}
         //{ "COL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
    };

    hr = device_ptr->CreateInputLayout(inputElementDesc, ARRAYSIZE(inputElementDesc), vs_blob_ptr->GetBufferPointer(), vs_blob_ptr->GetBufferSize(), &input_layout_ptr);
    assert(SUCCEEDED(hr));

    FLOAT vertex_data_array[] = {
         -0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -1.0f,   // Upper Left
         0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, -1.0f,    // Upper right
         0.5f, -0.5f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, -1.0f,   // Lower right
         -0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, -1.0f, // Lower left
         -0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -1.0f,   // Upper left
         0.5f, -0.5f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, -1.0f    // Lower right
    };

    UINT vertex_stride = 8 * sizeof(FLOAT);
    UINT vertex_offset = 0;
    UINT vertex_count = 6;

    ID3D11Buffer* vertex_buffer_ptr;
    { /*** load mesh data into vertex buffer ***/
        D3D11_BUFFER_DESC vertex_buff_descr = {};
        vertex_buff_descr.ByteWidth = sizeof(vertex_data_array);
        vertex_buff_descr.Usage = D3D11_USAGE_DEFAULT;
        vertex_buff_descr.BindFlags = D3D11_BIND_VERTEX_BUFFER;
        D3D11_SUBRESOURCE_DATA sr_data = { 0 };
        sr_data.pSysMem = vertex_data_array;
        HRESULT hr = device_ptr->CreateBuffer(&vertex_buff_descr, &sr_data, &vertex_buffer_ptr);
        assert(SUCCEEDED(hr));
    }

    ID3D11SamplerState* sampstate;
    D3D11_SAMPLER_DESC samp;
    samp.Filter = D3D11_FILTER_MIN_MAG_MIP_POINT;
    samp.AddressU = D3D11_TEXTURE_ADDRESS_CLAMP;
    samp.AddressV = D3D11_TEXTURE_ADDRESS_CLAMP;
    samp.AddressW = D3D11_TEXTURE_ADDRESS_CLAMP;
    samp.MipLODBias = 0;
    samp.MaxAnisotropy = 1;
    samp.ComparisonFunc = D3D11_COMPARISON_NEVER;
    samp.BorderColor[0] = 0.f;
    samp.BorderColor[1] = 0.f;
    samp.BorderColor[2] = 0.f;
    samp.BorderColor[3] = 0.f;
    samp.MinLOD = 0;
    samp.MaxLOD = D3D11_FLOAT32_MAX;

    // Transformation

    struct matstruct
    {
        XMMATRIX rotate;
    };

    ID3D11Buffer* constant_buffer_ptr;
    {
        D3D11_BUFFER_DESC matrixBufferDesc = {};
        matrixBufferDesc.Usage = D3D11_USAGE_DYNAMIC;
        matrixBufferDesc.ByteWidth = sizeof(matstruct);
        matrixBufferDesc.BindFlags = D3D11_BIND_CONSTANT_BUFFER;
        matrixBufferDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
        matrixBufferDesc.MiscFlags = 0;
        matrixBufferDesc.StructureByteStride = 0;
        HRESULT hr = device_ptr->CreateBuffer(&matrixBufferDesc, nullptr, &constant_buffer_ptr);
        assert(SUCCEEDED(hr));
    }
    matstruct* dataPtr;
    D3D11_MAPPED_SUBRESOURCE mappedResource;

    ID3D11ShaderResourceView* view;
    hr = CreateWICTextureFromFile(device_ptr, device_context_ptr, L"..\\Resources\\bild.jpg", nullptr, &view);
    assert(SUCCEEDED(hr));

    // Diffuse Lighting

    struct Light
    {
        XMFLOAT4 diffuseColour;
        XMFLOAT3 pos;
        FLOAT padding;
    };

    ID3D11Buffer* Clightbfr = nullptr;
    D3D11_BUFFER_DESC desc = {};
    desc.ByteWidth = sizeof Light;
    desc.MiscFlags = 0;
    desc.StructureByteStride = 0;
    desc.Usage = D3D11_USAGE_DYNAMIC;
    desc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
    desc.BindFlags = D3D11_BIND_CONSTANT_BUFFER;
    hr = device_ptr->CreateBuffer(&desc, nullptr, &Clightbfr);
    assert(SUCCEEDED(hr));

    Light* light;
    D3D11_MAPPED_SUBRESOURCE lghtresrc;

    hr = device_ptr->CreateSamplerState(&samp, &sampstate);
    assert(SUCCEEDED(hr));

    MSG msg = {};
    BOOL should_close = false;

    FLOAT angle = 0;

    // Run the message loop.
    while (!should_close)
    {
        // Handle user input and other window events
        while (PeekMessageW(&msg, nullptr, 0, 0, PM_REMOVE))
        {
            TranslateMessage(&msg);
            DispatchMessageW(&msg);

            if (msg.message == WM_QUIT)
            {
                device_ptr->Release();
                device_context_ptr->Release();
                swap_chain_ptr->Release();
                render_target_view_ptr->Release();
                Clightbfr->Release();
                constant_buffer_ptr->Release();
                view->Release();
                sampstate->Release();
                input_layout_ptr->Release();
                ps_blob_ptr->Release();
                vs_blob_ptr->Release();
                pixel_shader_ptr->Release();
                vertex_buffer_ptr->Release();
                vertex_shader_ptr->Release();
                framebuffer->Release();
                return 0;
            }
        }

        device_context_ptr->Map(constant_buffer_ptr, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource);
        dataPtr = (matstruct*)mappedResource.pData;
        dataPtr->rotate = XMMatrixRotationRollPitchYaw(0.0f, angle++ / 100, 0.0f);
        device_context_ptr->Unmap(constant_buffer_ptr, 0);

        device_context_ptr->Map(Clightbfr, 0, D3D11_MAP_WRITE_DISCARD, 0, &lghtresrc);
        light = (Light*)lghtresrc.pData;
        light->diffuseColour = XMFLOAT4(0.2f, 1.0f, 1.0f, 1.0f);
        light->pos = XMFLOAT3(0.0f, 0.0f, -1.0f);
        light->padding = 0.0f;
        device_context_ptr->Unmap(Clightbfr, 0);

        /* RENDER A FRAME */

        /* clear the back buffer to grey for the new frame */
        FLOAT background_colour[4] = { 0.1f, 0.1f, 0.1f, 1.0f };
        device_context_ptr->ClearRenderTargetView(render_target_view_ptr, background_colour);

        /**** Rasteriser state - set viewport area *****/
        RECT winRect;
        GetClientRect(hwnd, &winRect);
        D3D11_VIEWPORT viewport = { 0.0f, 0.0f, (FLOAT)(winRect.right - winRect.left), (FLOAT)(winRect.bottom - winRect.top), 0.0f, 1.0f };
        device_context_ptr->RSSetViewports(1, &viewport);

        /**** Output Merger *****/
        device_context_ptr->OMSetRenderTargets(1, &render_target_view_ptr, nullptr);

        /***** Input Assembler (map how the vertex shader inputs should be read from vertex buffer) ******/
        device_context_ptr->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
        device_context_ptr->IASetInputLayout(input_layout_ptr);
        device_context_ptr->IASetVertexBuffers(0, 1, &vertex_buffer_ptr, &vertex_stride, &vertex_offset);

        /*** set vertex shader to use and pixel shader to use, and constant buffers for each ***/
        device_context_ptr->VSSetShader(vertex_shader_ptr, nullptr, 0);
        device_context_ptr->PSSetShader(pixel_shader_ptr, nullptr, 0);
        device_context_ptr->PSSetShaderResources(0, 1, &view);
        device_context_ptr->PSSetSamplers(0, 1, &sampstate);
        device_context_ptr->VSSetConstantBuffers(0, 1, &constant_buffer_ptr);
        device_context_ptr->PSSetConstantBuffers(1, 1, &Clightbfr);

        /*** draw the vertex buffer with the shaders ***/
        device_context_ptr->Draw(vertex_count, 0);

        /**** swap the back and front buffers (show the frame we just drew) ****/
        swap_chain_ptr->Present(1, 0);
    }
    return 0;
}

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;

    case WM_PAINT:
    {
        PAINTSTRUCT ps;
        HDC hdc = BeginPaint(hwnd, &ps);
        FillRect(hdc, &ps.rcPaint, (HBRUSH)(COLOR_WINDOW));
        EndPaint(hwnd, &ps);
        break;
    }
    case WM_CLOSE:
    {
        if (MessageBox(hwnd, L"Quit?", L"Exit", MB_YESNO) == IDYES)
            DestroyWindow(hwnd);
        else
            return 0;
    }
    }
    return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
sean-mcmanus commented 4 years ago

I filed VS issue https://developercommunity.visualstudio.com/content/problem/1189555/cc-intellisense-gives-the-incorrect-error-more-tha.html .

However, it sounds like the root bug could be a duplicate of https://github.com/microsoft/vscode-cpptools/issues/5990 , which also has a VS issue tracking it.

The problem is IntelliSense is incorrectly putting the .inl code in the global namespace instead of the namespace surrounding the #include.

Note to self: It's not a regression compared to 0.29.0.