DepthBuffer.cpp 650 B

123456789101112131415161718192021222324252627282930313233343536
  1. /*
  2. * Copyright (c) 2021, Stephan Unverwerth <s.unverwerth@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include "DepthBuffer.h"
  7. namespace GL {
  8. DepthBuffer::DepthBuffer(Gfx::IntSize const& size)
  9. : m_size(size)
  10. , m_data(new float[size.width() * size.height()])
  11. {
  12. }
  13. DepthBuffer::~DepthBuffer()
  14. {
  15. delete[] m_data;
  16. }
  17. float* DepthBuffer::scanline(int y)
  18. {
  19. VERIFY(y >= 0 && y < m_size.height());
  20. return &m_data[y * m_size.width()];
  21. }
  22. void DepthBuffer::clear(float depth)
  23. {
  24. int num_entries = m_size.width() * m_size.height();
  25. for (int i = 0; i < num_entries; ++i) {
  26. m_data[i] = depth;
  27. }
  28. }
  29. }