在定义的矩形内绘制可滚动的内容
C++ SFML Drawing scrollable content within a defined rectangle
在定义的矩形内绘制可滚动内容时遇到问题。我想要实现的是能够在矩形内自由滚动内容,任何不在或部分被裁剪的内容。目前,我按可用项目的数量滚动,以确保没有任何东西被绘制在矩形之外。
查看SFML中可用的内容,似乎我应该能够使用sf::View实现此目标,但我的尝试不起作用。
sf::View panelView;
panelView.reset(sf::FloatRect(220,85,815,575));
panelView.setViewport(sf::FloatRect(0, 0, 1.0f, 1.0f));
然后我将视点设置为this,绘制我的项目,然后返回到默认视图。它似乎总是绘制到整个屏幕,而不是我在重置方法中设置的所需矩形?
我的理解是,这应该在x轴上创建220,y轴上85,宽815,高575的视口,但它在这个边界之外绘制。
任何想法?
进一步整理问题-似乎我只需要将我的位置设置为0.0f和1.0f之间的因子,其中在下面的示例代码中的位置是我希望视口定位的位置:
sf::FloatRect panelRect(position.left / SCREENWIDTH,
(position.top) / SCREENHEIGHT,
(position.width) / SCREENWIDTH,
(position.height) / SCREENHEIGHT);
panelView.reset(sf::FloatRect(position.left,position.top,position.width,position.height));
panelView.setViewport(panelRect);
相关文章:
- 使用一个考虑到std::map中键值的滚动或换行的键
- QuadTree只在窗口的右上角绘制
- 绘制旋转的三角形
- flutter:即使shouldRepaint()返回true,自定义画家也不会重新绘制
- QScrollArea:由垂直滚动条引起的水平滚动条
- 跟踪滚动条上的鼠标事件
- 如何在QT中的自定义视频小工具t上绘制矩形
- 如何在Visual Basic中使用矩形函数OpenGL绘制矩形
- 无法使用VAO和EBO(openGL)绘制多个对象
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 绘制顺时针三角形,重新排序点
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- SFML 文本未绘制在窗口上
- 如何在不使用滚动条的情况下使视图更改
- 如何为对象生成滚动效果?
- "QGraphicsView"滚动后不调用"绘制"方法
- 绘制滚动条到mfcactiveX控件Visual studio 2012(c++).
- 在定义的矩形内绘制可滚动的内容
- 当拇指轨迹被正确地重新绘制时,滚动条箭头不会被重新绘制
- QGraphicsView未在滚动事件上重新绘制