/*
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* 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.
*/
package com.sun.javafx.font.directwrite;
class IDWriteTextAnalyzer extends IUnknown {
IDWriteTextAnalyzer(long ptr) {
super(ptr);
}
int AnalyzeScript(JFXTextAnalysisSink source, int start, int length, JFXTextAnalysisSink sink) {
return OS.AnalyzeScript(ptr, source.ptr, start, length, sink.ptr);
}
int GetGlyphs(char[] textString,
int textStart,
int textLength,
IDWriteFontFace fontFace,
boolean isSideways,
boolean isRightToLeft,
DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
String localeName,
long numberSubstitution,
/*DWRITE_TYPOGRAPHIC_FEATURES*/ long[] features,
int[] featureRangeLengths,
int featureRanges,
int maxGlyphCount,
short[] clusterMap,
/*DWRITE_SHAPING_TEXT_PROPERTIES*/ short[] textProps,
short[] glyphIndices,
/*DWRITE_SHAPING_GLYPH_PROPERTIES*/ short[] glyphProps,
int[] actualGlyphCount) {
return OS.GetGlyphs(ptr, textString, textStart, textLength, fontFace.ptr,
isSideways, isRightToLeft,
scriptAnalysis,
(localeName != null ? (localeName+'\0').toCharArray() : (char[])null),
numberSubstitution,
features, featureRangeLengths, featureRanges,
maxGlyphCount, clusterMap, textProps,
glyphIndices, glyphProps, actualGlyphCount);
}
int GetGlyphPlacements(char[] textString,
short[] clusterMap,
/*DWRITE_SHAPING_TEXT_PROPERTIES*/ short[] textProps,
int textStart,
int textLength,
short[] glyphIndices,
/*DWRITE_SHAPING_GLYPH_PROPERTIES*/ short[] glyphProps,
int glyphCount,
IDWriteFontFace fontFace,
float fontEmSize,
boolean isSideways,
boolean isRightToLeft,
DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
String localeName,
/*DWRITE_TYPOGRAPHIC_FEATURES*/ long[] features,
int[] featureRangeLengths,
int featureRanges,
float[] glyphAdvances,
/*DWRITE_GLYPH_OFFSET 2X */ float[] glyphOffsets) {
return OS.GetGlyphPlacements(ptr, textString, clusterMap, textProps,
textStart, textLength,
glyphIndices, glyphProps, glyphCount,
fontFace.ptr, fontEmSize, isSideways, isRightToLeft,
scriptAnalysis,
(localeName != null ? (localeName+'\0').toCharArray() : (char[])null),
features, featureRangeLengths, featureRanges,
glyphAdvances, glyphOffsets);
}
}