[{"data":1,"prerenderedAt":808},["ShallowReactive",2],{"u7tOCpESGr":3},{"title":4,"description":5,"parent":6,"cmd_buf_level":7,"render_pass_scope":10,"supported_queue_types":11,"tasks":13,"type":15,"xrefs":16,"body":17,"_type":807,"_id":4},"vkCmdSetViewport","Set the viewport dynamically for a command buffer","VK_VERSION_1_0",[8,9],"primary","secondary","both",[12],"graphics",[14],"state","protos",[],{"type":18,"children":19,"toc":805},"root",[20,37,309,365,415,441,602,753,799],{"type":21,"tag":22,"props":23,"children":24},"element","p",{},[25,28,35],{"type":26,"value":27},"text","To ",{"type":21,"tag":29,"props":30,"children":32},"a",{"href":31},"/chapters/pipelines#pipelines-dynamic-state",[33],{"type":26,"value":34},"dynamically set",{"type":26,"value":36}," the viewport transformation\nparameters, call:",{"type":21,"tag":38,"props":39,"children":40},"code-group",{},[41,162],{"type":21,"tag":42,"props":43,"children":49},"pre",{"className":44,"code":45,"filename":46,"language":47,"meta":48,"style":48},"language-c shiki shiki-themes github-light-default github-dark-default","void vkCmdSetViewport(\n VkCommandBuffer commandBuffer,\n uint32_t firstViewport,\n uint32_t viewportCount,\n const VkViewport* pViewports);\n","C","c","",[50],{"type":21,"tag":51,"props":52,"children":53},"code",{"__ignoreMap":48},[54,78,98,116,133],{"type":21,"tag":55,"props":56,"children":59},"span",{"class":57,"line":58},"line",1,[60,66,72],{"type":21,"tag":55,"props":61,"children":63},{"style":62},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[64],{"type":26,"value":65},"void",{"type":21,"tag":55,"props":67,"children":69},{"style":68},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[70],{"type":26,"value":71}," vkCmdSetViewport",{"type":21,"tag":55,"props":73,"children":75},{"style":74},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[76],{"type":26,"value":77},"(\n",{"type":21,"tag":55,"props":79,"children":81},{"class":57,"line":80},2,[82,87,93],{"type":21,"tag":55,"props":83,"children":84},{"style":74},[85],{"type":26,"value":86}," VkCommandBuffer ",{"type":21,"tag":55,"props":88,"children":90},{"style":89},"--shiki-default:#953800;--shiki-dark:#FFA657",[91],{"type":26,"value":92},"commandBuffer",{"type":21,"tag":55,"props":94,"children":95},{"style":74},[96],{"type":26,"value":97},",\n",{"type":21,"tag":55,"props":99,"children":101},{"class":57,"line":100},3,[102,107,112],{"type":21,"tag":55,"props":103,"children":104},{"style":62},[105],{"type":26,"value":106}," uint32_t",{"type":21,"tag":55,"props":108,"children":109},{"style":89},[110],{"type":26,"value":111}," firstViewport",{"type":21,"tag":55,"props":113,"children":114},{"style":74},[115],{"type":26,"value":97},{"type":21,"tag":55,"props":117,"children":119},{"class":57,"line":118},4,[120,124,129],{"type":21,"tag":55,"props":121,"children":122},{"style":62},[123],{"type":26,"value":106},{"type":21,"tag":55,"props":125,"children":126},{"style":89},[127],{"type":26,"value":128}," viewportCount",{"type":21,"tag":55,"props":130,"children":131},{"style":74},[132],{"type":26,"value":97},{"type":21,"tag":55,"props":134,"children":136},{"class":57,"line":135},5,[137,142,147,152,157],{"type":21,"tag":55,"props":138,"children":139},{"style":62},[140],{"type":26,"value":141}," const",{"type":21,"tag":55,"props":143,"children":144},{"style":74},[145],{"type":26,"value":146}," VkViewport",{"type":21,"tag":55,"props":148,"children":149},{"style":62},[150],{"type":26,"value":151},"*",{"type":21,"tag":55,"props":153,"children":154},{"style":89},[155],{"type":26,"value":156}," pViewports",{"type":21,"tag":55,"props":158,"children":159},{"style":74},[160],{"type":26,"value":161},");\n",{"type":21,"tag":42,"props":163,"children":168},{"className":164,"code":165,"filename":166,"language":167,"meta":48,"style":48},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn cmd_set_viewport(\n command_buffer: vk::CommandBuffer,\n first_viewport: u32,\n viewport_count: u32,\n p_viewports: *const vk::Viewport,\n);\n","Rust","rs",[169],{"type":21,"tag":51,"props":170,"children":171},{"__ignoreMap":48},[172,194,226,247,267,301],{"type":21,"tag":55,"props":173,"children":174},{"class":57,"line":58},[175,180,185,190],{"type":21,"tag":55,"props":176,"children":177},{"style":62},[178],{"type":26,"value":179},"pub",{"type":21,"tag":55,"props":181,"children":182},{"style":62},[183],{"type":26,"value":184}," fn",{"type":21,"tag":55,"props":186,"children":187},{"style":68},[188],{"type":26,"value":189}," cmd_set_viewport",{"type":21,"tag":55,"props":191,"children":192},{"style":74},[193],{"type":26,"value":77},{"type":21,"tag":55,"props":195,"children":196},{"class":57,"line":80},[197,202,207,212,217,222],{"type":21,"tag":55,"props":198,"children":199},{"style":74},[200],{"type":26,"value":201}," command_buffer",{"type":21,"tag":55,"props":203,"children":204},{"style":62},[205],{"type":26,"value":206},":",{"type":21,"tag":55,"props":208,"children":209},{"style":89},[210],{"type":26,"value":211}," vk",{"type":21,"tag":55,"props":213,"children":214},{"style":62},[215],{"type":26,"value":216},"::",{"type":21,"tag":55,"props":218,"children":219},{"style":89},[220],{"type":26,"value":221},"CommandBuffer",{"type":21,"tag":55,"props":223,"children":224},{"style":74},[225],{"type":26,"value":97},{"type":21,"tag":55,"props":227,"children":228},{"class":57,"line":100},[229,234,238,243],{"type":21,"tag":55,"props":230,"children":231},{"style":74},[232],{"type":26,"value":233}," first_viewport",{"type":21,"tag":55,"props":235,"children":236},{"style":62},[237],{"type":26,"value":206},{"type":21,"tag":55,"props":239,"children":240},{"style":89},[241],{"type":26,"value":242}," u32",{"type":21,"tag":55,"props":244,"children":245},{"style":74},[246],{"type":26,"value":97},{"type":21,"tag":55,"props":248,"children":249},{"class":57,"line":118},[250,255,259,263],{"type":21,"tag":55,"props":251,"children":252},{"style":74},[253],{"type":26,"value":254}," viewport_count",{"type":21,"tag":55,"props":256,"children":257},{"style":62},[258],{"type":26,"value":206},{"type":21,"tag":55,"props":260,"children":261},{"style":89},[262],{"type":26,"value":242},{"type":21,"tag":55,"props":264,"children":265},{"style":74},[266],{"type":26,"value":97},{"type":21,"tag":55,"props":268,"children":269},{"class":57,"line":135},[270,275,279,284,288,292,297],{"type":21,"tag":55,"props":271,"children":272},{"style":74},[273],{"type":26,"value":274}," p_viewports",{"type":21,"tag":55,"props":276,"children":277},{"style":62},[278],{"type":26,"value":206},{"type":21,"tag":55,"props":280,"children":281},{"style":62},[282],{"type":26,"value":283}," *const",{"type":21,"tag":55,"props":285,"children":286},{"style":89},[287],{"type":26,"value":211},{"type":21,"tag":55,"props":289,"children":290},{"style":62},[291],{"type":26,"value":216},{"type":21,"tag":55,"props":293,"children":294},{"style":89},[295],{"type":26,"value":296},"Viewport",{"type":21,"tag":55,"props":298,"children":299},{"style":74},[300],{"type":26,"value":97},{"type":21,"tag":55,"props":302,"children":304},{"class":57,"line":303},6,[305],{"type":21,"tag":55,"props":306,"children":307},{"style":74},[308],{"type":26,"value":161},{"type":21,"tag":310,"props":311,"children":312},"ul",{},[313,324,335,346],{"type":21,"tag":314,"props":315,"children":316},"li",{},[317,322],{"type":21,"tag":51,"props":318,"children":320},{"className":319},[],[321],{"type":26,"value":92},{"type":26,"value":323}," is the command buffer into which the command will be\nrecorded.",{"type":21,"tag":314,"props":325,"children":326},{},[327,333],{"type":21,"tag":51,"props":328,"children":330},{"className":329},[],[331],{"type":26,"value":332},"firstViewport",{"type":26,"value":334}," is the index of the first viewport whose parameters\nare updated by the command.",{"type":21,"tag":314,"props":336,"children":337},{},[338,344],{"type":21,"tag":51,"props":339,"children":341},{"className":340},[],[342],{"type":26,"value":343},"viewportCount",{"type":26,"value":345}," is the number of viewports whose parameters are\nupdated by the command.",{"type":21,"tag":314,"props":347,"children":348},{},[349,355,357,363],{"type":21,"tag":51,"props":350,"children":352},{"className":351},[],[353],{"type":26,"value":354},"pViewports",{"type":26,"value":356}," is a pointer to an array of ",{"type":21,"tag":29,"props":358,"children":360},{"href":359},"/man/VkViewport",[361],{"type":26,"value":362},"VkViewport",{"type":26,"value":364}," structures\nspecifying viewport parameters.",{"type":21,"tag":22,"props":366,"children":367},{},[368,370,376,378,384,386,392,393,399,401,407,408,413],{"type":26,"value":369},"This command sets the viewport transformation parameters state for\nsubsequent drawing commands\nwhen drawing using ",{"type":21,"tag":29,"props":371,"children":373},{"href":372},"/chapters/shaders#shaders-objects",[374],{"type":26,"value":375},"shader objects",{"type":26,"value":377},", or\nwhen the graphics pipeline is created with ",{"type":21,"tag":51,"props":379,"children":381},{"className":380},[],[382],{"type":26,"value":383},"VK_DYNAMIC_STATE_VIEWPORT",{"type":26,"value":385},"\nset in ",{"type":21,"tag":29,"props":387,"children":389},{"href":388},"/man/VkPipelineDynamicStateCreateInfo",[390],{"type":26,"value":391},"VkPipelineDynamicStateCreateInfo",{"type":26,"value":216},{"type":21,"tag":51,"props":394,"children":396},{"className":395},[],[397],{"type":26,"value":398},"pDynamicStates",{"type":26,"value":400},".\nOtherwise, this state is specified by the\n",{"type":21,"tag":51,"props":402,"children":404},{"className":403},[],[405],{"type":26,"value":406},"VkPipelineViewportStateCreateInfo",{"type":26,"value":216},{"type":21,"tag":51,"props":409,"children":411},{"className":410},[],[412],{"type":26,"value":354},{"type":26,"value":414}," values used to\ncreate the currently active pipeline.",{"type":21,"tag":22,"props":416,"children":417},{},[418,420,425,427,432,434,439],{"type":26,"value":419},"The viewport parameters taken from element i of ",{"type":21,"tag":51,"props":421,"children":423},{"className":422},[],[424],{"type":26,"value":354},{"type":26,"value":426},"\nreplace the current state for the viewport index ",{"type":21,"tag":51,"props":428,"children":430},{"className":429},[],[431],{"type":26,"value":332},{"type":26,"value":433},"\n+ i, for i in [0, ",{"type":21,"tag":51,"props":435,"children":437},{"className":436},[],[438],{"type":26,"value":343},{"type":26,"value":440},").",{"type":21,"tag":442,"props":443,"children":445},"validity-group",{"name":444},"Valid Usage",[446,499,537,569],{"type":21,"tag":447,"props":448,"children":450},"validity-field",{"name":449},"VUID-vkCmdSetViewport-firstViewport-01223",[451],{"type":21,"tag":22,"props":452,"children":453},{},[454,456,461,463,468,470,475,477,483,484,490,491,497],{"type":26,"value":455},"The sum of ",{"type":21,"tag":51,"props":457,"children":459},{"className":458},[],[460],{"type":26,"value":332},{"type":26,"value":462}," and ",{"type":21,"tag":51,"props":464,"children":466},{"className":465},[],[467],{"type":26,"value":343},{"type":26,"value":469}," ",{"type":21,"tag":471,"props":472,"children":474},"normative",{"type":473},"must",[],{"type":26,"value":476}," be between\n",{"type":21,"tag":51,"props":478,"children":480},{"className":479},[],[481],{"type":26,"value":482},"1",{"type":26,"value":462},{"type":21,"tag":51,"props":485,"children":487},{"className":486},[],[488],{"type":26,"value":489},"VkPhysicalDeviceLimits",{"type":26,"value":216},{"type":21,"tag":51,"props":492,"children":494},{"className":493},[],[495],{"type":26,"value":496},"maxViewports",{"type":26,"value":498},", inclusive",{"type":21,"tag":447,"props":500,"children":502},{"name":501},"VUID-vkCmdSetViewport-firstViewport-01224",[503],{"type":21,"tag":22,"props":504,"children":505},{},[506,508,518,520,525,526,529,531],{"type":26,"value":507},"If the ",{"type":21,"tag":29,"props":509,"children":511},{"href":510},"/man/VkPhysicalDeviceFeatures#features-multiViewport",[512],{"type":21,"tag":51,"props":513,"children":515},{"className":514},[],[516],{"type":26,"value":517},"multiViewport",{"type":26,"value":519}," feature is not\nenabled, ",{"type":21,"tag":51,"props":521,"children":523},{"className":522},[],[524],{"type":26,"value":332},{"type":26,"value":469},{"type":21,"tag":471,"props":527,"children":528},{"type":473},[],{"type":26,"value":530}," be ",{"type":21,"tag":51,"props":532,"children":534},{"className":533},[],[535],{"type":26,"value":536},"0",{"type":21,"tag":447,"props":538,"children":540},{"name":539},"VUID-vkCmdSetViewport-viewportCount-01225",[541],{"type":21,"tag":22,"props":542,"children":543},{},[544,545,553,554,559,560,563,564],{"type":26,"value":507},{"type":21,"tag":29,"props":546,"children":547},{"href":510},[548],{"type":21,"tag":51,"props":549,"children":551},{"className":550},[],[552],{"type":26,"value":517},{"type":26,"value":519},{"type":21,"tag":51,"props":555,"children":557},{"className":556},[],[558],{"type":26,"value":343},{"type":26,"value":469},{"type":21,"tag":471,"props":561,"children":562},{"type":473},[],{"type":26,"value":530},{"type":21,"tag":51,"props":565,"children":567},{"className":566},[],[568],{"type":26,"value":482},{"type":21,"tag":447,"props":570,"children":572},{"name":571},"VUID-vkCmdSetViewport-commandBuffer-04821",[573],{"type":21,"tag":22,"props":574,"children":575},{},[576,581,582,585,587,593,594,600],{"type":21,"tag":51,"props":577,"children":579},{"className":578},[],[580],{"type":26,"value":92},{"type":26,"value":469},{"type":21,"tag":471,"props":583,"children":584},{"type":473},[],{"type":26,"value":586}," not have\n",{"type":21,"tag":29,"props":588,"children":590},{"href":589},"/man/VkCommandBufferInheritanceViewportScissorInfoNV",[591],{"type":26,"value":592},"VkCommandBufferInheritanceViewportScissorInfoNV",{"type":26,"value":216},{"type":21,"tag":51,"props":595,"children":597},{"className":596},[],[598],{"type":26,"value":599},"viewportScissor2D",{"type":26,"value":601},"\nenabled",{"type":21,"tag":442,"props":603,"children":605},{"name":604},"Valid Usage (Implicit)",[606,632,663,687,716,730],{"type":21,"tag":447,"props":607,"children":609},{"name":608},"VUID-vkCmdSetViewport-commandBuffer-parameter",[610],{"type":21,"tag":22,"props":611,"children":612},{},[613,618,619,622,624,630],{"type":21,"tag":51,"props":614,"children":616},{"className":615},[],[617],{"type":26,"value":92},{"type":26,"value":469},{"type":21,"tag":471,"props":620,"children":621},{"type":473},[],{"type":26,"value":623}," be a valid ",{"type":21,"tag":29,"props":625,"children":627},{"href":626},"/man/VkCommandBuffer",[628],{"type":26,"value":629},"VkCommandBuffer",{"type":26,"value":631}," handle",{"type":21,"tag":447,"props":633,"children":635},{"name":634},"VUID-vkCmdSetViewport-pViewports-parameter",[636],{"type":21,"tag":22,"props":637,"children":638},{},[639,644,645,648,650,655,657,661],{"type":21,"tag":51,"props":640,"children":642},{"className":641},[],[643],{"type":26,"value":354},{"type":26,"value":469},{"type":21,"tag":471,"props":646,"children":647},{"type":473},[],{"type":26,"value":649}," be a valid pointer to an array of ",{"type":21,"tag":51,"props":651,"children":653},{"className":652},[],[654],{"type":26,"value":343},{"type":26,"value":656}," valid ",{"type":21,"tag":29,"props":658,"children":659},{"href":359},[660],{"type":26,"value":362},{"type":26,"value":662}," structures",{"type":21,"tag":447,"props":664,"children":666},{"name":665},"VUID-vkCmdSetViewport-commandBuffer-recording",[667],{"type":21,"tag":22,"props":668,"children":669},{},[670,675,676,679,681],{"type":21,"tag":51,"props":671,"children":673},{"className":672},[],[674],{"type":26,"value":92},{"type":26,"value":469},{"type":21,"tag":471,"props":677,"children":678},{"type":473},[],{"type":26,"value":680}," be in the ",{"type":21,"tag":29,"props":682,"children":684},{"href":683},"/chapters/commandbuffers#commandbuffers-lifecycle",[685],{"type":26,"value":686},"recording state",{"type":21,"tag":447,"props":688,"children":690},{"name":689},"VUID-vkCmdSetViewport-commandBuffer-cmdpool",[691],{"type":21,"tag":22,"props":692,"children":693},{},[694,696,702,704,709,711,714],{"type":26,"value":695},"The ",{"type":21,"tag":51,"props":697,"children":699},{"className":698},[],[700],{"type":26,"value":701},"VkCommandPool",{"type":26,"value":703}," that ",{"type":21,"tag":51,"props":705,"children":707},{"className":706},[],[708],{"type":26,"value":92},{"type":26,"value":710}," was allocated from ",{"type":21,"tag":471,"props":712,"children":713},{"type":473},[],{"type":26,"value":715}," support graphics operations",{"type":21,"tag":447,"props":717,"children":719},{"name":718},"VUID-vkCmdSetViewport-videocoding",[720],{"type":21,"tag":22,"props":721,"children":722},{},[723,725,728],{"type":26,"value":724},"This command ",{"type":21,"tag":471,"props":726,"children":727},{"type":473},[],{"type":26,"value":729}," only be called outside of a video coding scope",{"type":21,"tag":447,"props":731,"children":733},{"name":732},"VUID-vkCmdSetViewport-viewportCount-arraylength",[734],{"type":21,"tag":22,"props":735,"children":736},{},[737,742,743,746,748],{"type":21,"tag":51,"props":738,"children":740},{"className":739},[],[741],{"type":26,"value":343},{"type":26,"value":469},{"type":21,"tag":471,"props":744,"children":745},{"type":473},[],{"type":26,"value":747}," be greater than ",{"type":21,"tag":51,"props":749,"children":751},{"className":750},[],[752],{"type":26,"value":536},{"type":21,"tag":754,"props":755,"children":757},"validity-box",{"name":756},"Host Synchronization",[758],{"type":21,"tag":310,"props":759,"children":760},{},[761,777],{"type":21,"tag":314,"props":762,"children":763},{},[764,766,771,772,775],{"type":26,"value":765},"Host access to ",{"type":21,"tag":51,"props":767,"children":769},{"className":768},[],[770],{"type":26,"value":92},{"type":26,"value":469},{"type":21,"tag":471,"props":773,"children":774},{"type":473},[],{"type":26,"value":776}," be externally synchronized",{"type":21,"tag":314,"props":778,"children":779},{},[780,782,787,788,793,794,797],{"type":26,"value":781},"Host access to the ",{"type":21,"tag":51,"props":783,"children":785},{"className":784},[],[786],{"type":26,"value":701},{"type":26,"value":703},{"type":21,"tag":51,"props":789,"children":791},{"className":790},[],[792],{"type":26,"value":92},{"type":26,"value":710},{"type":21,"tag":471,"props":795,"children":796},{"type":473},[],{"type":26,"value":798}," be externally synchronized\n::",{"type":21,"tag":800,"props":801,"children":802},"style",{},[803],{"type":26,"value":804},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":48,"searchDepth":80,"depth":80,"links":806},[],"markdown",1725732610408]