OutputSurface.cc 997 B

1234567891011121314151617181920212223242526272829303132333435
  1. #include "OutputSurface.hh"
  2. #include "build-info.hh"
  3. namespace openmsx {
  4. void OutputSurface::calculateViewPort(gl::ivec2 logSize_, gl::ivec2 physSize_)
  5. {
  6. m_logicalSize = logSize_;
  7. m_physSize = physSize_;
  8. gl::vec2 logSize(logSize_); // convert int->float
  9. gl::vec2 physSize(physSize_);
  10. float scale = min_component(physSize / logSize);
  11. m_viewScale = gl::vec2(scale); // for now always same X and Y scale
  12. gl::vec2 viewSize = logSize * scale;
  13. m_viewSize = round(viewSize);
  14. gl::vec2 viewOffset = (physSize - viewSize) / 2.0f;
  15. m_viewOffset = round(viewOffset);
  16. }
  17. void OutputSurface::setOpenGlPixelFormat()
  18. {
  19. setPixelFormat(PixelFormat(
  20. 32,
  21. OPENMSX_BIGENDIAN ? 0xFF000000 : 0x00FF0000, OPENMSX_BIGENDIAN ? 24 : 16, 0,
  22. OPENMSX_BIGENDIAN ? 0x00FF0000 : 0x0000FF00, OPENMSX_BIGENDIAN ? 16 : 8, 0,
  23. OPENMSX_BIGENDIAN ? 0x0000FF00 : 0x000000FF, OPENMSX_BIGENDIAN ? 8 : 0, 0,
  24. OPENMSX_BIGENDIAN ? 0x000000FF : 0xFF000000, OPENMSX_BIGENDIAN ? 0 : 24, 0));
  25. }
  26. } // namespace openmsx