   A RenderTargetView cannot be created from a NULL Resource
  I am trying to create a renderView for my direct x application but I get the following errorA RenderTargetView cannot be created from a NULL ResourceNot sure what that means but below is my declaration and my implementation declaration #pragma once#include "stdafx.h"#include "resource.h"#include "d3d10.h"#include "d3dx10.h"#include "dinput.h"#define MAX_LOADSTRING 100class RenderEngine {protected:RECT m_screenRect;//direct3d MembersID3D10Device *m_pDevice; // The IDirect3DDevice10// interfaceID3D10Texture2D *m_pBackBuffer; // Pointer to the back bufferID3D10RenderTargetView *m_pRenderTargetView; // Pointer to render target viewIDXGISwapChain *m_pSwapChain; // Pointer to the swap chainRECT m_rcScreenRect; // The dimensions of the screenID3DX10Font *m_pFont; // The font used for rendering text// Sprites used to hold font charactersID3DX10Sprite *m_pFontSprite;ATOM RegisterEngineClass();void Present();public:static HINSTANCE m_hInst;HWND m_hWnd;int m_nCmdShow;TCHAR m_szTitle[MAX_LOADSTRING];// The title bar textTCHAR m_szWindowClass[MAX_LOADSTRING];// the main window class namevoid DrawTextString(int x, int y, D3DXCOLOR color, const TCHAR *strOutput);//static functionsstatic LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);static INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);bool InitWindow();bool InitDirectX();bool InitInstance();int Run();RenderEngine(){m_screenRect.right = 800;m_screenRect.bottom = 600;}};implementation bool RenderEngine::InitDirectX(){//potential error. You did not set to zero memory and you did not set the scaling propertyDXGI_MODE_DESC bd;bd.Width= m_screenRect.right;bd.Height= m_screenRect.bottom;bd.Format= DXGI_FORMAT_R8G8B8A8_UNORM;bd.RefreshRate.Numerator= 60;bd.RefreshRate.Denominator= 1;DXGI_SAMPLE_DESC sd;sd.Count = 1;sd.Quality = 0;DXGI_SWAP_CHAIN_DESC swapDesc;ZeroMemory(&swapDesc, sizeof(swapDesc));swapDesc.BufferDesc= bd;swapDesc.SampleDesc= sd;swapDesc.BufferUsage= DXGI_USAGE_RENDER_TARGET_OUTPUT;swapDesc.OutputWindow= m_hWnd;swapDesc.BufferCount= 1;swapDesc.SwapEffect= DXGI_SWAP_EFFECT_DISCARD,swapDesc.Windowed= true;swapDesc.Flags= 0;HRESULT hr;hr = D3D10CreateDeviceAndSwapChain(NULL,D3D10_DRIVER_TYPE_HARDWARE, NULL, D3D10_CREATE_DEVICE_DEBUG,D3D10_SDK_VERSION ,&swapDesc, &m_pSwapChain, &m_pDevice);if(FAILED(hr))return false;// Create a render target viewhr = m_pDevice->CreateRenderTargetView(m_pBackBuffer, NULL, &m_pRenderTargetView); // FAILS RIGHT HEREif(FAILED(hr))return false;return true;}
  nevermind, figured it out. Forgot to get the buffer firstm_pSwapChain->GetBuffer(0, __uuidof(ID3D10Texture2D), (LPVOID*) &m_pBackBuffer);   