/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
#include "GlyphImageRef.h"
#ifdef HEADLESS
#include "SurfaceData.h"
#else
#include "X11SurfaceData.h"
#include "GraphicsPrimitiveMgr.h"
#endif /* !HEADLESS */
#include <jlong.h>
#ifndef HEADLESS
{
int image_size;
// assert(BM_W and BM_H are not large enough to overflow);
} else {
}
}
return JNI_FALSE;
}
}
if (cData->monoPixmap == 0 ||
{
if (cData->monoPixmap != 0) {
cData->monoPixmap = 0;
}
cData->monoPixmapGC = 0;
}
if (cData->monoPixmap == 0) {
return JNI_FALSE;
}
0, NULL);
cData->monoPixmap = 0;
return JNI_FALSE;
}
}
return JNI_TRUE;
}
{
int glyphCounter;
unsigned int rowBytes;
for (y = clipTop; y < clipBottom; y++) {
}
if (!pixels) {
continue;
}
/* if any clipping required, modify parameters now */
}
}
}
if (bottom > clipBottom) {
bottom = clipBottom;
}
continue;
}
left &= 0x07;
do {
int x = 0, bx = 0;
do {
if (bit == 0) {
bit = 0x80;
}
if (pixels[x]) {
}
bit >>= 1;
} while (++x < width);
} while (--height > 0);
} else {
do {
int x = 0, bx = 0;
do {
if ((bit >> 8) != 0) {
bit = 1;
}
if (pixels[x]) {
}
bit <<= 1;
} while (++x < width);
} while (--height > 0);
}
}
}
#endif /* !HEADLESS */
{
#ifndef HEADLESS
return;
}
return;
}
return;
}
&xgcv);
// NOTE: Since we are tiling around by BM_W, BM_H offsets
// and thePixmap is BM_W x BM_H, we do not have to move
// the TSOrigin at each step since the stipple repeats
// every BM_W, BM_H units
/* MGA on Linux doesn't pick up the new stipple image data,
* probably because it caches the image as a hardware pixmap
* and doesn't update it when the pixmap image data is changed.
* So if the loop is executed more than once, update the GC
* which triggers the required behaviour. This extra XChangeGC
* call only happens on large or rotated text so isn't a
* significant new overhead..
* This code needs to execute on a Solaris client too, in case
* we are remote displaying to a MGA.
*/
}
}
}
#endif /* !HEADLESS */
}