public class GLDataManager extends PageDataManager {
private static GLDataManager instance = null;
- private GLStateDataMaker GLStateDataMaker = null;
- private List<FrameRateInfo> frameRateDataList;
+ private GLStateDataMaker stateDataMaker = null;
+ private List<FrameRateInfo> frameRateDataList = null;
+ private List<GLSharingContextType> sharingContextList = null;
private int startFrameRateTime = 1;
private int selectedContextID = -1;
- private int currentFrameIndex = 1;
+ protected int currentFrameIndex = 1;
private boolean isSelectFrameRateChart = true;
- List<GLSharingContextType> sharingContextList = null;
private GLAPIDBTableManager apiDBTable = null;
private GLFrameRateDBTableManager frameRateDBTable = null;
private GLFrameTimeDBTableManager frameTimeDBTable = null;
- private GLStateDBTableManager contextDBTable = null;
+ private GLStateDBTableManager stateDBTable = null;
private GLStateProgramDBTableManager stateProgramDBTable = null;
private GLStateHistoryDBTableManager stateHistoryDBTable = null;
private GLStateTextureDBTableManager stateTextureDBTable = null;
return instance;
}
- private GLDataManager() {
- frameRateDataList = new ArrayList<FrameRateInfo>();
- GLStateDataMaker = new GLStateDataMaker();
+ protected GLDataManager() {
apiDBTable = new GLAPIDBTableManager();
addDBTable(apiDBTable);
frameRateDBTable = new GLFrameRateDBTableManager();
addDBTable(frameRateDBTable);
frameTimeDBTable = new GLFrameTimeDBTableManager();
addDBTable(frameTimeDBTable);
- contextDBTable = new GLStateDBTableManager();
- addDBTable(contextDBTable);
+ stateDBTable = new GLStateDBTableManager();
+ addDBTable(stateDBTable);
stateProgramDBTable = new GLStateProgramDBTableManager();
addDBTable(stateProgramDBTable);
stateHistoryDBTable = new GLStateHistoryDBTableManager();
addDBTable(stateSharingDBTable);
}
- @Override
- protected void makeData(LogPackage pack) {
- Logs glesLogs = pack.getLogs(DataChannelConstants.MSG_PROBE_GLES20);
- if (glesLogs != null && glesLogs.getRawLogs().size() != 0) {
- makeGLData(glesLogs);
- }
- }
-
public void clear() {
+ stateDataMaker = new GLStateDataMaker();
frameRateDataList = new ArrayList<FrameRateInfo>();
- GLStateDataMaker.clear();
sharingContextList = new ArrayList<GLSharingContextType>();
+ startFrameRateTime = 1;
+ selectedContextID = -1;
currentFrameIndex = 1;
+ isSelectFrameRateChart = true;
}
public void saveData(Map<String, String> dataMap) {
}
public void openProcess() {
- updateFrameTimeChartEndTime();
+ updateFrameTimeChartEndTimeAtOpen();
stateProgramDBTable.initProgramData();
}
stateProgramDBTable.insertData();
}
+ @Override
+ protected void makeData(LogPackage pack) {
+ Logs glesLogs = pack.getLogs(DataChannelConstants.MSG_PROBE_GLES20);
+ if (glesLogs != null && glesLogs.getRawLogs().size() != 0) {
+ makeGLData(glesLogs);
+ }
+ }
+
public void makeGLData(Logs glesLogs) {
- List<List<Object>> insetFrameTimeChartDataList = new ArrayList<List<Object>>();
- List<GLAPIType> insetAPIDataList = new ArrayList<GLAPIType>();
- GLCurrentFrameDataManger currentFrameData = new GLCurrentFrameDataManger();
+ addAPIDBData(glesLogs);
+ addFrameTimeChartDBData(glesLogs);
+ addFrameRateChartDBData(glesLogs);
+ addStateDBData(glesLogs);
+ addFailedAPIData(glesLogs);
+ updateCurrentFrameIndex(glesLogs);
+ }
+
+ private void updateCurrentFrameIndex(Logs glesLogs) {
for (LogData data : glesLogs.getRawLogs()) {
GLES20LogData logData = (GLES20LogData) data;
- GLAPIType apiType = new GLAPIType(logData, currentFrameIndex);
- GLStateDataMaker.makeStateData(logData, currentFrameIndex);
- insetAPIDataList.add(apiType);
- currentFrameData.addAPIData(apiType);
- checkFailedAPI(logData);
if (GLUtil.isLastAPIOfFrame(logData.getApiName())) {
- makeFrameTimeData(insetFrameTimeChartDataList, currentFrameData);
- makeFrameRateChartDataList(logData);
currentFrameIndex++;
}
}
+ }
+
+ private void addFailedAPIData(Logs glesLogs) {
+ for (LogData data : glesLogs.getRawLogs()) {
+ GLES20LogData logData = (GLES20LogData) data;
+ if (checkFailedAPI(logData)) {
+ SummaryDataManager.getInstance().getFailedApiDataMaker()
+ .makeData(logData);
+ }
+ }
+ }
+
+ private void addStateDBData(Logs glesLogs) {
+ int currentFrameIndexOfState = currentFrameIndex;
+ for (LogData data : glesLogs.getRawLogs()) {
+ GLES20LogData logData = (GLES20LogData) data;
+ stateDataMaker.makeStateData(logData, currentFrameIndexOfState);
+ if (GLUtil.isLastAPIOfFrame(logData.getApiName())) {
+ currentFrameIndexOfState++;
+ }
+ }
+ }
+
+ private void addAPIDBData(Logs glesLogs) {
+ int currentFrameIndexOfAPI = currentFrameIndex;
+ List<GLAPIType> insetAPIDataList = new ArrayList<GLAPIType>();
+ for (LogData data : glesLogs.getRawLogs()) {
+ GLES20LogData logData = (GLES20LogData) data;
+ insetAPIDataList
+ .add(new GLAPIType(logData, currentFrameIndexOfAPI));
+ if (GLUtil.isLastAPIOfFrame(logData.getApiName())) {
+ currentFrameIndexOfAPI++;
+ }
+ }
apiDBTable.insert(insetAPIDataList);
+ }
+
+ private void addFrameTimeChartDBData(Logs glesLogs) {
+ int currentFrameIndexOfFrameTime = currentFrameIndex;
+ List<List<Object>> insetFrameTimeChartDataList = new ArrayList<List<Object>>();
+ GLCurrentFrameDataManger currentFrameData = new GLCurrentFrameDataManger();
+ for (LogData data : glesLogs.getRawLogs()) {
+ GLES20LogData logData = (GLES20LogData) data;
+ currentFrameData.addAPIData(new GLAPIType(logData,
+ currentFrameIndexOfFrameTime));
+ if (GLUtil.isLastAPIOfFrame(logData.getApiName())) {
+ makeFrameTimeData(insetFrameTimeChartDataList,
+ currentFrameData, currentFrameIndexOfFrameTime);
+ currentFrameIndexOfFrameTime++;
+ }
+ }
frameTimeDBTable.insertData(insetFrameTimeChartDataList);
+ }
+
+ private void addFrameRateChartDBData(Logs glesLogs) {
+ int currentFrameIndexOfFrameRate = currentFrameIndex;
+ boolean hasFailedAPIofCurrentFrame = false;
+ for (LogData data : glesLogs.getRawLogs()) {
+ GLES20LogData logData = (GLES20LogData) data;
+ if (checkFailedAPI(logData)) {
+ hasFailedAPIofCurrentFrame = true;
+ }
+ if (GLUtil.isLastAPIOfFrame(logData.getApiName())) {
+ makeFrameRateChartDataList(logData,
+ currentFrameIndexOfFrameRate,
+ hasFailedAPIofCurrentFrame);
+ hasFailedAPIofCurrentFrame = false;
+ currentFrameIndexOfFrameRate++;
+ }
+ }
insertTraceFrameChartData((GLES20LogData) glesLogs.getRawLogs().get(
glesLogs.getRawLogs().size() - 1));
}
private boolean checkFailedAPI(GLES20LogData logData) {
if (logData.getErrno() != GLES20ErrorDefine.EGL_SUCCESS
&& logData.getErrno() != GLES20ErrorDefine.GL_SUCCESS) {
- SummaryDataManager.getInstance().getFailedApiDataMaker()
- .makeData(logData);
return true;
} else {
return false;
}
}
- private void makeFrameRateChartDataList(GLES20LogData logData) {
+ private void makeFrameRateChartDataList(GLES20LogData logData,
+ int currentFrameIndexOfFrameRate, boolean hasFailedAPIofCurrentFrame) {
int time = GLUtil.getTimeLineTime(logData);
for (FrameRateInfo data : frameRateDataList) {
if (data.getTime() == time) {
}
FrameRateInfo frameRateData = new FrameRateInfo();
frameRateData.setTime(GLUtil.getTimeLineTime(logData));
- frameRateData.setStartFrameIndex(currentFrameIndex);
- frameRateData.setErrno(false);
+ frameRateData.setStartFrameIndex(currentFrameIndexOfFrameRate);
+ frameRateData.setErrno(hasFailedAPIofCurrentFrame);
frameRateData.setPid(logData.getPid());
frameRateData.addFrameCount();
frameRateDataList.add(frameRateData);
}
- public void insertTraceFrameChartData(GLES20LogData lastLog) {
+ private void insertTraceFrameChartData(GLES20LogData lastLog) {
List<List<Object>> insetData = new ArrayList<List<Object>>();
List<FrameRateInfo> removeframeInfoList = new ArrayList<FrameRateInfo>();
for (FrameRateInfo data : frameRateDataList) {
private void makeFrameTimeData(
List<List<Object>> insetFrameTimeChartDataList,
- GLCurrentFrameDataManger glCurrentFrameData) {
- int frameNumber = currentFrameIndex;
+ GLCurrentFrameDataManger glCurrentFrameData,
+ int currentFrameIndexOfFrameTime) {
long frameValue = glCurrentFrameData.getFrametime()
/ TimelineConstants.KILO_LONG;
List<Object> framTimeChartData = new ArrayList<Object>();
- framTimeChartData.add(frameNumber);
+ framTimeChartData.add(currentFrameIndexOfFrameTime);
framTimeChartData.add(GLUtil.getTimeLineTime(glCurrentFrameData
.getFirstLogData()));
framTimeChartData.add((int) frameValue);
insetFrameTimeChartDataList.add(framTimeChartData);
}
+ public void updateSharingContextList() {
+ this.sharingContextList = GLDataManager.getInstance()
+ .getStateSharingDBTableManage().selectSharingData();
+ }
+
+ public boolean isSharingData(long itemContextId) {
+ if (null == sharingContextList) {
+ return false;
+ }
+ for (int i = 0; i < sharingContextList.size(); i++) {
+ long contextId = sharingContextList.get(i).getContextId();
+ long sharingContextId = sharingContextList.get(i)
+ .getSharingContextId();
+ if (contextId == selectedContextID
+ && sharingContextId == itemContextId) {
+ return true;
+ }
+ }
+ return false;
+ }
+
public int getFrameSize() {
return currentFrameIndex;
}
- private void updateFrameTimeChartEndTime() {
- if (currentFrameIndex == 1) {
- currentFrameIndex = frameTimeDBTable.getFrameSize();
- }
+ private void updateFrameTimeChartEndTimeAtOpen() {
+ currentFrameIndex = frameTimeDBTable.getFrameSize();
}
public FrameRateInfo getFrameRateStartIndex(int startIndex, int endIndex) {
}
public GLStateDataMaker getStateDataMake() {
- return GLStateDataMaker;
+ return stateDataMaker;
}
public GLFrameRateDBTableManager getFrameRateDBTableManager() {
}
public GLStateDBTableManager getContextDBTableManage() {
- return contextDBTable;
+ return stateDBTable;
}
public GLStateProgramDBTableManager getStateProgramDBTableManage() {
this.startFrameRateTime = startFrameRateTime;
}
- public void updateSharingContextList() {
- this.sharingContextList = GLDataManager.getInstance()
- .getStateSharingDBTableManage().selectSharingData();
- }
-
- public boolean isSharingData(long itemContextId) {
- if (null == sharingContextList) {
- return false;
- }
- for (int i = 0; i < sharingContextList.size(); i++) {
- long contextId = sharingContextList.get(i).getContextId();
- long sharingContextId = sharingContextList.get(i)
- .getSharingContextId();
- if (contextId == GLDataManager.getInstance().getSelectedContextID()
- && sharingContextId == itemContextId) {
- return true;
- }
- }
- return false;
- }
-
}