// underlying class names are different from the class name of the
// primary image.
m_rowImage = factory->newImage(m_dpy, m_width, 1);
- if (strcmp(m_image->className(), m_rowImage->className()) != 0) {
- vlog.error("Image types do not match (%s)",
- m_rowImage->className());
+ m_columnImage = factory->newImage(m_dpy, 1, m_height);
+ const char *primaryImgClass = m_image->className();
+ const char *rowImgClass = m_rowImage->className();
+ const char *columnImgClass = m_columnImage->className();
+ if (strcmp(rowImgClass, primaryImgClass) != 0 ||
+ strcmp(columnImgClass, primaryImgClass) != 0) {
+ vlog.error("Image types do not match (%s, %s, %s)",
+ primaryImgClass, rowImgClass, columnImgClass);
}
int numTiles = m_widthTiles * m_heightTiles;
delete[] m_rateMatrix;
delete m_rowImage;
+ delete m_columnImage;
}
//
}
inline void getColumn(int x, int y, int h) {
- m_rowImage->get(DefaultRootWindow(m_dpy),
- m_offsetLeft + x, m_offsetTop + y, 1, h);
+ m_columnImage->get(DefaultRootWindow(m_dpy),
+ m_offsetLeft + x, m_offsetTop + y, 1, h);
}
int checkRow(int x, int y, int w, bool *pChangeFlags);
void findMaxLocalRect(Rect *r, int *mx_h, int *mx_v);
// Additional images used in polling algorithms.
- Image *m_rowImage; // One row of the framebuffer
+ Image *m_rowImage; // one row of the framebuffer
+ Image *m_columnImage; // one column of the framebuffer
char *m_rateMatrix;
char *m_videoFlags;