void TextureViewer::OnEventSelected(uint32_t frameID, uint32_t eventID) { m_Core->Renderer()->AsyncInvoke([this](IReplayRenderer *) { TextureDisplay d; if(m_Core->APIProps().pipelineType == ePipelineState_D3D11) d.texid = m_Core->CurD3D11PipelineState.m_OM.RenderTargets[0].Resource; else d.texid = m_Core->CurGLPipelineState.m_FB.m_DrawFBO.Color[0]; d.mip = 0; d.sampleIdx = ~0U; d.overlay = eTexOverlay_None; d.CustomShader = ResourceId(); d.HDRMul = -1.0f; d.linearDisplayAsGamma = true; d.FlipY = false; d.rangemin = 0.0f; d.rangemax = 1.0f; d.scale = -1.0f; d.offx = 0.0f; d.offy = 0.0f; d.sliceFace = 0; d.rawoutput = false; d.lightBackgroundColour = d.darkBackgroundColour = FloatVector(0.0f, 0.0f, 0.0f, 0.0f); d.Red = d.Green = d.Blue = true; d.Alpha = false; m_Output->SetTextureDisplay(d); GUIInvoke::call([this]() { ui->render->update(); }); }); }
void Concat::BackwardProp(const size_t batchSize) { #ifdef DNN_LEAN for (size_t i = 0; i < InputCount; i++) if (Inputs[i]->NeuronsD1.size() < batchSize * Inputs[i]->NeuronCount) Inputs[i]->NeuronsD1 = FloatVector(batchSize * Inputs[i]->NeuronCount, Float(0)); #endif // DNN_LEAN #ifdef DNN_STOCHASTIC if (batchSize == 1) { size_t channelOffset = 0; for (size_t input = 0; input < InputCount; input++) { for (size_t c = channelOffset; c < channelOffset + Inputs[input]->C; c++) { const size_t inputIndex = (c - channelOffset) * WH; const size_t outputIndex = c * WH; for (size_t wh = 0; wh < WH; wh++) Inputs[input]->NeuronsD1[inputIndex + wh] += NeuronsD1[outputIndex + wh]; } channelOffset += Inputs[input]->C; } } else { #endif for_i(batchSize, LIGHT_COMPUTE, [=](size_t b) { const size_t outputSampleOffset = b * NeuronCount; size_t channelOffset = 0; for (size_t input = 0; input < InputCount; input++) { const size_t inputSampleOffset = b * Inputs[input]->NeuronCount; for (size_t c = channelOffset; c < channelOffset + Inputs[input]->C; c++) { const size_t inputIndex = ((c - channelOffset) * WH) + inputSampleOffset; const size_t outputIndex = (c * WH) + outputSampleOffset; for (size_t wh = 0; wh < WH; wh++) Inputs[input]->NeuronsD1[inputIndex + wh] += NeuronsD1[outputIndex + wh]; } channelOffset += Inputs[input]->C; } }); #ifdef DNN_STOCHASTIC } #endif #ifdef DNN_LEAN NeuronsD1.~vector(); #endif // DNN_LEAN }
void DysonCompressor::clearBuffers() { toRemove = NDELAY; delayedSamples = 0; ndelayptr = 0; rgain = rmastergain0 = 1.0; rlevelsq0 = rlevelsq1 = 0.0; rpeakgain0 = rpeakgain1 = 1.0; peaklimitdelay = rpeaklimitdelay = 0; lastrgain = 1.0; memset(rlevelsqn, 0, sizeof rlevelsqn); memset(rlevelsqe, 0, sizeof rlevelsqe); samplesdelayed.clear(); if (enabled) { for (int i = 0; i < channels; ++i) samplesdelayed.append(FloatVector(NDELAY)); } }
bool ReplayOutput::Display() { if(m_pDevice->CheckResizeOutputWindow(m_MainOutput.outputID)) { m_pDevice->GetOutputWindowDimensions(m_MainOutput.outputID, m_Width, m_Height); m_MainOutput.dirty = true; } for(size_t i = 0; i < m_Thumbnails.size(); i++) if(m_pDevice->CheckResizeOutputWindow(m_Thumbnails[i].outputID)) m_Thumbnails[i].dirty = true; for(size_t i = 0; i < m_Thumbnails.size(); i++) { if(!m_Thumbnails[i].dirty) { m_pDevice->BindOutputWindow(m_Thumbnails[i].outputID, false); m_pDevice->FlipOutputWindow(m_Thumbnails[i].outputID); continue; } if(!m_pDevice->IsOutputWindowVisible(m_Thumbnails[i].outputID)) continue; float color[4] = {0.0f, 0.0f, 0.0f, 0.0f}; if(m_Thumbnails[i].texture == ResourceId()) { m_pDevice->BindOutputWindow(m_Thumbnails[i].outputID, false); color[0] = 0.4f; m_pDevice->ClearOutputWindowColour(m_Thumbnails[i].outputID, color); m_pDevice->RenderCheckerboard(Vec3f(0.6f, 0.6f, 0.7f), Vec3f(0.5f, 0.5f, 0.6f)); m_pDevice->FlipOutputWindow(m_Thumbnails[i].outputID); continue; } m_pDevice->BindOutputWindow(m_Thumbnails[i].outputID, false); m_pDevice->ClearOutputWindowColour(m_Thumbnails[i].outputID, color); TextureDisplay disp; disp.Red = disp.Green = disp.Blue = true; disp.Alpha = false; disp.HDRMul = -1.0f; disp.linearDisplayAsGamma = true; disp.FlipY = false; disp.mip = 0; disp.sampleIdx = ~0U; disp.CustomShader = ResourceId(); disp.texid = m_pDevice->GetLiveID(m_Thumbnails[i].texture); disp.typeHint = m_Thumbnails[i].typeHint; disp.scale = -1.0f; disp.rangemin = 0.0f; disp.rangemax = 1.0f; disp.sliceFace = 0; disp.offx = 0.0f; disp.offy = 0.0f; disp.rawoutput = false; disp.overlay = eTexOverlay_None; disp.lightBackgroundColour = disp.darkBackgroundColour = FloatVector(); if(m_Thumbnails[i].typeHint == eCompType_SNorm) disp.rangemin = -1.0f; if(m_Thumbnails[i].depthMode) disp.Green = disp.Blue = false; m_pDevice->RenderTexture(disp); m_pDevice->FlipOutputWindow(m_Thumbnails[i].outputID); m_Thumbnails[i].dirty = false; } if(m_pDevice->CheckResizeOutputWindow(m_PixelContext.outputID)) m_MainOutput.dirty = true; if(!m_MainOutput.dirty) { m_pDevice->BindOutputWindow(m_MainOutput.outputID, false); m_pDevice->FlipOutputWindow(m_MainOutput.outputID); m_pDevice->BindOutputWindow(m_PixelContext.outputID, false); m_pDevice->FlipOutputWindow(m_PixelContext.outputID); return true; } m_MainOutput.dirty = false; switch(m_Config.m_Type) { case eOutputType_MeshDisplay: DisplayMesh(); break; case eOutputType_TexDisplay: DisplayTex(); break; default: RDCERR("Unexpected display type! %d", m_Config.m_Type); break; } m_pDevice->FlipOutputWindow(m_MainOutput.outputID); DisplayContext(); return true; }
FloatVector Camera::GetUp() { Vec3f up = basis.GetUp(); return FloatVector(up.x, up.y, up.z, 1.0f); }
FloatVector Camera::GetRight() { Vec3f right = basis.GetRight(); return FloatVector(right.x, right.y, right.z, 1.0f); }
FloatVector Camera::GetForward() { Vec3f fwd = basis.GetForward(); return FloatVector(fwd.x, fwd.y, fwd.z, 1.0f); }
FloatVector Camera::GetPosition() { return FloatVector(pos.x, pos.y, pos.z, 1.0f); }
void Life::update() { Item::update(); Object::getMovementBuffer().pushVector(getTimer().getPerSecond(FloatVector(dir * 150, 0))); }