c++ - Nothing is rendering in DX 11 -


nothing rendering in dx program in c++(using ps_5_0 , vs_5_0).i have check of dx functions return hresult , return s_ok, have gone through , debugged , looked @ , nothing null or uninitialized. searched every here , on bing , did not find post helped me(tried of there solutions see if worked, none of them did).i have no idea why not rendering, of parameters good.

here code initializes depth stencil, device context , device.

    //create graphics device factory     result = createdxgifactory(__uuidof(idxgifactory), (void**)&factory);      //use factor create adapter primary graphics interface(video card)     result = factory->enumadapters(0, &adapter);     if (failed(result))         return false;      //enumerate primary adapter output(monitor)     result = adapter->enumoutputs(0, &adapteroutput);     if (failed(result))         return false;      //get adapter(video card) description     result = adapter->getdesc(&adapterdesc);     if (failed(result))         return false;      //zero out swap chain description     zeromemory(&swapchaindesc, sizeof(swapchaindesc));      //set ot single buffer     swapchaindesc.buffercount = 1;      //set regular 32 bit surface buffer.     swapchaindesc.bufferdesc.format = dxgi_format_r8g8b8a8_unorm;      //set usage of buffer.     swapchaindesc.bufferusage = dxgi_usage_render_target_output;      //set handle window render to.     swapchaindesc.outputwindow = hwnd;      //turn multi sampling off     swapchaindesc.sampledesc.count = 1;     swapchaindesc.sampledesc.quality = 0;      //set scan line odering , scaling unspecified.     swapchaindesc.bufferdesc.scanlineordering = dxgi_mode_scanline_order_unspecified;     swapchaindesc.bufferdesc.scaling = dxgi_mode_scaling_unspecified;      //discard buffer contents after presenting     swapchaindesc.swapeffect = dxgi_swap_effect_discard;      //donw set advanced flags     swapchaindesc.flags = 0;      //set feature level directx 11     featurelevel = d3d_feature_level_11_0;      //create swap chain,direct3d, , driect3d device context.     result = d3d11createdeviceandswapchain(null, d3d_driver_type_hardware, null, 0, &featurelevel, 1,         d3d11_sdk_version, &swapchaindesc, &m_swapchain, &m_device, null, &m_devicecontext);     if (failed(result))         return false;      //get pointer buffer     result = m_swapchain->getbuffer(0, __uuidof(id3d11texture2d), (lpvoid*)&backbufferptr);     if (failed(result))         return false;      //create render target view buffer pointer     result = m_device->createrendertargetview(backbufferptr, null, &m_rendertarget);      //set description of depth buffer     depthbufferdesc.width = screenwidth;     depthbufferdesc.height = screenheight;     depthbufferdesc.miplevels = 1;     depthbufferdesc.arraysize = 1;     depthbufferdesc.format = dxgi_format_d24_unorm_s8_uint;     depthbufferdesc.sampledesc.count = 1;     depthbufferdesc.sampledesc.quality = 0;     depthbufferdesc.usage = d3d11_usage_default;     depthbufferdesc.bindflags = d3d11_bind_depth_stencil;     depthbufferdesc.cpuaccessflags = 0;     depthbufferdesc.miscflags = 0;      //create texture depth buffer using filled out description     result = m_device->createtexture2d(&depthbufferdesc, null, &m_depthstencilbuffer);     if (failed(result))         return false;      // set description of stencil state.     depthstencildesc.depthenable = true;     depthstencildesc.depthwritemask = d3d11_depth_write_mask_all;     depthstencildesc.depthfunc = d3d11_comparison_less;      depthstencildesc.stencilenable = true;     depthstencildesc.stencilreadmask = 0xff;     depthstencildesc.stencilwritemask = 0xff;      // stencil operations if pixel front-facing.     depthstencildesc.frontface.stencilfailop = d3d11_stencil_op_keep;     depthstencildesc.frontface.stencildepthfailop = d3d11_stencil_op_incr;     depthstencildesc.frontface.stencilpassop = d3d11_stencil_op_keep;     depthstencildesc.frontface.stencilfunc = d3d11_comparison_always;      // stencil operations if pixel back-facing.     depthstencildesc.backface.stencilfailop = d3d11_stencil_op_keep;     depthstencildesc.backface.stencildepthfailop = d3d11_stencil_op_decr;     depthstencildesc.backface.stencilpassop = d3d11_stencil_op_keep;     depthstencildesc.backface.stencilfunc = d3d11_comparison_always;      //create depth stencil state     result = m_device->createdepthstencilstate(&depthstencildesc, &m_depthstencil);      //set depth stencil state     m_devicecontext->omsetdepthstencilstate(m_depthstencil, 1);      //set depth stencil view description     depthstencilviewdesc.format = dxgi_format_d24_unorm_s8_uint;     depthstencilviewdesc.viewdimension = d3d11_dsv_dimension_texture2d;     depthstencilviewdesc.texture2d.mipslice = 0;      //create depth stencil view     result = m_device->createdepthstencilview(m_depthstencilbuffer, &depthstencilviewdesc,&m_depthstencilview);     if (failed(result))         return false;      //bind render target view , depth stencil buffer output render pipeline     m_devicecontext->omsetrendertargets(1, &m_rendertarget, m_depthstencilview);      //setup raster description determines how , polygons drawn     rasterdesc.antialiasedlineenable = false;     rasterdesc.cullmode = d3d11_cull_back;     rasterdesc.depthbias = 0;     rasterdesc.depthbiasclamp = 0.0f;     rasterdesc.depthclipenable = true;     rasterdesc.fillmode = d3d11_fill_solid;     rasterdesc.frontcounterclockwise = false;     rasterdesc.multisampleenable = false;     rasterdesc.slopescaleddepthbias = 0.0f;      //create rasterizer state description     result = m_device->createrasterizerstate(&rasterdesc, &m_rasterstate);      // set rasterizer state.     m_devicecontext->rssetstate(m_rasterstate);      //setup viewport rendering     viewport.width = (float)screenwidth;     viewport.height = (float)screenheight;     viewport.mindepth = 0.0f;     viewport.maxdepth = 1.0f;     viewport.topleftx = 0.0f;     viewport.toplefty = 0.0f;      // create view por     m_devicecontext->rssetviewports(1, &viewport);      //set projection matrix     fieldofview = (float)d3dx_pi / 4.0f;     screenaspect = (float)screenwidth / (float)screenheight;      //create projection matrix 3d rendering     d3dxmatrixperspectivefovlh(&m_projectionmatrix, fieldofview, screenaspect, screennear, screendepth); 

here code renders model(i made sure of vertices good)

float color[4];      //set color clear buffer     color[0] = red;     color[1] = green;     color[2] = blue;     color[3] = alpha;      //clear buffer     m_devicecontext->clearrendertargetview(m_rendertarget, color);      //clear depth buffer     m_devicecontext->cleardepthstencilview(m_depthstencilview, d3d11_clear_depth, 1.0f,0);  unsigned int stride;     unsigned int offset;      //set vertex buffer stride , offset     stride = sizeof(vertex);     offset = 0;      //set vertex buffer active on device context     devicecontext->iasetvertexbuffers(0, 1, &m_vertexbuffer, &stride, &offset);      //set index buffer active in input assembler can renderered     devicecontext->iasetindexbuffer(m_indexbuffer, dxgi_format_r32_uint, 0);      //set type of primitive topology use rendering     devicecontext->iasetprimitivetopology(d3d11_primitive_topology_trianglelist);  //set vertex input layout     devicecontext->iasetinputlayout(m_layout);      //set vertex , pixel shaders used render triangle.     devicecontext->vssetshader(m_vertexshader, null, 0);     devicecontext->pssetshader(m_pixelshader, null, 0);      //set sampler state in pixel shader.     devicecontext->pssetsamplers(0, 1, &m_samplestate);      //render model     devicecontext->drawindexed(indexcount, 0, 0);  //present buffer screen rendering complete     m_swapchain->present(m_vsync, 0); 

does know doing wrong?(p.s have recent version of program in github here : https://github.com/justinweq/test-engine . has of files in it(including model , shader files, if need @ more information can).

i figured out, few parameters missing when setting up. fixed it, thank trying me everyone.


Comments