diff --git a/panda/src/display/displayRegion.I b/panda/src/display/displayRegion.I index bb549873c0..8795eee561 100644 --- a/panda/src/display/displayRegion.I +++ b/panda/src/display/displayRegion.I @@ -389,7 +389,7 @@ get_draw_callback() const { INLINE int DisplayRegion:: get_pixel_width() const { CDReader cdata(_cycler); - return cdata->_pr - cdata->_pl; + return cdata->_pixels[1] - cdata->_pixels[0]; } //////////////////////////////////////////////////////////////////// @@ -400,7 +400,7 @@ get_pixel_width() const { INLINE int DisplayRegion:: get_pixel_height() const { CDReader cdata(_cycler); - return cdata->_pt - cdata->_pb; + return cdata->_pixels[3] - cdata->_pixels[2]; } //////////////////////////////////////////////////////////////////// @@ -412,10 +412,10 @@ get_pixel_height() const { INLINE void DisplayRegion:: get_pixels(int &pl, int &pr, int &pb, int &pt) const { CDReader cdata(_cycler); - pl = cdata->_pl; - pr = cdata->_pr; - pb = cdata->_pb; - pt = cdata->_pt; + pl = cdata->_pixels[0]; + pr = cdata->_pixels[1]; + pb = cdata->_pixels[2]; + pt = cdata->_pixels[3]; } //////////////////////////////////////////////////////////////////// @@ -428,10 +428,10 @@ get_pixels(int &pl, int &pr, int &pb, int &pt) const { INLINE void DisplayRegion:: get_region_pixels(int &xo, int &yo, int &w, int &h) const { CDReader cdata(_cycler); - xo = cdata->_pl; - yo = cdata->_pb; - w = cdata->_pr - cdata->_pl; - h = cdata->_pt - cdata->_pb; + xo = cdata->_pixels[0]; + yo = cdata->_pixels[2]; + w = cdata->_pixels[1] - xo; + h = cdata->_pixels[3] - yo; } //////////////////////////////////////////////////////////////////// @@ -445,10 +445,10 @@ get_region_pixels(int &xo, int &yo, int &w, int &h) const { INLINE void DisplayRegion:: get_region_pixels_i(int &xo, int &yo, int &w, int &h) const { CDReader cdata(_cycler); - xo = cdata->_pl; - yo = cdata->_pti; - w = cdata->_pr - cdata->_pl; - h = cdata->_pbi - cdata->_pti; + xo = cdata->_pixels_i[0]; + yo = cdata->_pixels_i[2]; + w = cdata->_pixels_i[1] - xo; + h = cdata->_pixels_i[3] - yo; } //////////////////////////////////////////////////////////////////// @@ -816,10 +816,10 @@ get_draw_callback() const { //////////////////////////////////////////////////////////////////// INLINE void DisplayRegionPipelineReader:: get_pixels(int &pl, int &pr, int &pb, int &pt) const { - pl = _cdata->_pl; - pr = _cdata->_pr; - pb = _cdata->_pb; - pt = _cdata->_pt; + pl = _cdata->_pixels[0]; + pr = _cdata->_pixels[1]; + pb = _cdata->_pixels[2]; + pt = _cdata->_pixels[3]; } //////////////////////////////////////////////////////////////////// @@ -831,10 +831,10 @@ get_pixels(int &pl, int &pr, int &pb, int &pt) const { //////////////////////////////////////////////////////////////////// INLINE void DisplayRegionPipelineReader:: get_region_pixels(int &xo, int &yo, int &w, int &h) const { - xo = _cdata->_pl; - yo = _cdata->_pb; - w = _cdata->_pr - _cdata->_pl; - h = _cdata->_pt - _cdata->_pb; + xo = _cdata->_pixels[0]; + yo = _cdata->_pixels[2]; + w = _cdata->_pixels[1] - xo; + h = _cdata->_pixels[3] - yo; } //////////////////////////////////////////////////////////////////// @@ -847,10 +847,10 @@ get_region_pixels(int &xo, int &yo, int &w, int &h) const { //////////////////////////////////////////////////////////////////// INLINE void DisplayRegionPipelineReader:: get_region_pixels_i(int &xo, int &yo, int &w, int &h) const { - xo = _cdata->_pl; - yo = _cdata->_pti; - w = _cdata->_pr - _cdata->_pl; - h = _cdata->_pbi - _cdata->_pti; + xo = _cdata->_pixels_i[0]; + yo = _cdata->_pixels_i[2]; + w = _cdata->_pixels_i[1] - xo; + h = _cdata->_pixels_i[3] - yo; } //////////////////////////////////////////////////////////////////// @@ -860,7 +860,7 @@ get_region_pixels_i(int &xo, int &yo, int &w, int &h) const { //////////////////////////////////////////////////////////////////// INLINE int DisplayRegionPipelineReader:: get_pixel_width() const { - return _cdata->_pr - _cdata->_pl; + return _cdata->_pixels[1] - _cdata->_pixels[0]; } //////////////////////////////////////////////////////////////////// @@ -869,8 +869,7 @@ get_pixel_width() const { // Description: Gets the index into a lens_node lens array. 0 default //////////////////////////////////////////////////////////////////// INLINE int DisplayRegionPipelineReader:: -get_lens_index() const -{ +get_lens_index() const { return _cdata->_lens_index; } @@ -881,5 +880,5 @@ get_lens_index() const //////////////////////////////////////////////////////////////////// INLINE int DisplayRegionPipelineReader:: get_pixel_height() const { - return _cdata->_pt - _cdata->_pb; + return _cdata->_pixels[3] - _cdata->_pixels[2]; } diff --git a/panda/src/display/displayRegion.cxx b/panda/src/display/displayRegion.cxx index 5bf57bf2fa..73324a6f78 100644 --- a/panda/src/display/displayRegion.cxx +++ b/panda/src/display/displayRegion.cxx @@ -419,9 +419,8 @@ set_target_tex_page(int page) { void DisplayRegion:: output(ostream &out) const { CDReader cdata(_cycler); - out << "DisplayRegion(" << cdata->_dimensions << ")=pixels(" << cdata->_pl - << " " << cdata->_pr << " " << cdata->_pb << " " << cdata->_pt - << ")"; + out << "DisplayRegion(" << cdata->_dimensions << ")=pixels(" + << cdata->_pixels << ")"; } //////////////////////////////////////////////////////////////////// @@ -747,26 +746,28 @@ do_compute_pixels(int x_size, int y_size, CData *cdata) { << "DisplayRegion::do_compute_pixels(" << x_size << ", " << y_size << ")\n"; } - int old_w = cdata->_pr - cdata->_pl; - int old_h = cdata->_pt - cdata->_pb; + int old_w = cdata->_pixels[1] - cdata->_pixels[0]; + int old_h = cdata->_pixels[3] - cdata->_pixels[2]; - cdata->_pl = int((cdata->_dimensions[0] * x_size) + 0.5); - cdata->_pr = int((cdata->_dimensions[1] * x_size) + 0.5); + cdata->_pixels[0] = int((cdata->_dimensions[0] * x_size) + 0.5); + cdata->_pixels[1] = int((cdata->_dimensions[1] * x_size) + 0.5); + cdata->_pixels_i[0] = cdata->_pixels[0]; + cdata->_pixels_i[1] = cdata->_pixels[1]; nassertv(_window != (GraphicsOutput *)NULL); if (_window->get_inverted()) { // The window is inverted; compute the DisplayRegion accordingly. - cdata->_pb = int(((1.0f - cdata->_dimensions[3]) * y_size) + 0.5); - cdata->_pt = int(((1.0f - cdata->_dimensions[2]) * y_size) + 0.5); - cdata->_pbi = int((cdata->_dimensions[3] * y_size) + 0.5); - cdata->_pti = int((cdata->_dimensions[2] * y_size) + 0.5); + cdata->_pixels[2] = int(((1.0f - cdata->_dimensions[3]) * y_size) + 0.5); + cdata->_pixels[3] = int(((1.0f - cdata->_dimensions[2]) * y_size) + 0.5); + cdata->_pixels_i[2] = int((cdata->_dimensions[3] * y_size) + 0.5); + cdata->_pixels_i[3] = int((cdata->_dimensions[2] * y_size) + 0.5); } else { // The window is normal. - cdata->_pb = int((cdata->_dimensions[2] * y_size) + 0.5); - cdata->_pt = int((cdata->_dimensions[3] * y_size) + 0.5); - cdata->_pbi = int(((1.0f - cdata->_dimensions[2]) * y_size) + 0.5); - cdata->_pti = int(((1.0f - cdata->_dimensions[3]) * y_size) + 0.5); + cdata->_pixels[2] = int((cdata->_dimensions[2] * y_size) + 0.5); + cdata->_pixels[3] = int((cdata->_dimensions[3] * y_size) + 0.5); + cdata->_pixels_i[2] = int(((1.0f - cdata->_dimensions[2]) * y_size) + 0.5); + cdata->_pixels_i[3] = int(((1.0f - cdata->_dimensions[3]) * y_size) + 0.5); } } @@ -815,8 +816,9 @@ do_cull(CullHandler *cull_handler, SceneSetup *scene_setup, DisplayRegion::CData:: CData() : _dimensions(0.0f, 1.0f, 0.0f, 1.0f), - _pl(0), _pr(0), _pb(0), _pt(0), - _pbi(0), _pti(0), _lens_index(0), + _pixels(0, 0, 0, 0), + _pixels_i(0, 0, 0, 0), + _lens_index(0), _camera_node((Camera *)NULL), _active(true), _sort(0), @@ -834,12 +836,8 @@ CData() : DisplayRegion::CData:: CData(const DisplayRegion::CData ©) : _dimensions(copy._dimensions), - _pl(copy._pl), - _pr(copy._pr), - _pb(copy._pb), - _pt(copy._pt), - _pbi(copy._pbi), - _pti(copy._pti), + _pixels(copy._pixels), + _pixels_i(copy._pixels_i), _lens_index(copy._lens_index), _camera(copy._camera), _camera_node(copy._camera_node), diff --git a/panda/src/display/displayRegion.h b/panda/src/display/displayRegion.h index 0de061ab1d..7cbf8efb89 100644 --- a/panda/src/display/displayRegion.h +++ b/panda/src/display/displayRegion.h @@ -195,13 +195,9 @@ private: } LVecBase4 _dimensions; // left, right, bottom, top - - int _pl; - int _pr; - int _pb; - int _pt; - int _pbi; - int _pti; + LVecBase4i _pixels; + LVecBase4i _pixels_i; + int _lens_index; // index into which lens of a camera is associated with this display region. 0 is default NodePath _camera;