mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-02 09:52:27 -04:00
Use LVecBase4i to store _pixels in DisplayRegion
This commit is contained in:
parent
d5a61d3705
commit
e5447a5fcd
@ -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];
|
||||
}
|
||||
|
@ -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),
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user