prep.setInt(index++, apiType);
prep.setLong(index++, elapsedTime);
prep.setString(index++, contextValue);
+
}
@Override
contextValue = rs.getString(index++);
}
}
-
-
-
import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLSelectionData;
import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLStateShaderType;
import org.tizen.dynamicanalyzer.ui.widgets.table.DATableDataFormat;
+import org.tizen.dynamicanalyzer.utils.DownloadContentfileManager;
import org.tizen.dynamicanalyzer.widgets.da.view.DAViewComposite;
import org.tizen.dynamicanalyzer.widgets.da.view.DAViewData;
@Override
public void updateView(DAViewData vdata) {
-
if (vdata instanceof GLSelectionData) {
GLSelectionData data = (GLSelectionData) vdata;
String id = vdata.getViewID();
updateProgramTableInfo(data);
}
}
-
}
@Override
return;
}
+ String contextId = items[0].getText(0);
+ if (contextId.contains(GLPageLabels.GL_CONTEXT)) {
+ contextId = contextId.replace(GLPageLabels.GL_CONTEXT,
+ CommonConstants.EMPTY);
+ }
String vertexShaderID = items[0].getText(2)
.replace(GLPageLabels.GL_SHADER, CommonConstants.EMPTY).trim();
String fragmentID = items[0].getText(3)
String fragmentSrc = CommonConstants.EMPTY;
List<GLStateShaderType> shaderList = GLDataManager.getInstance()
- .getStateDataMagerInstance().getShaderList();
+ .getStateDataMake().getShaderList();
for (int i = 0; i < shaderList.size(); i++) {
- if (shaderList.get(i).getId() == Integer.parseInt(vertexShaderID)) {
- vertexSrc = shaderList.get(i).getShaderSrc();
+ if (shaderList.get(i).getContextId() == Long.parseLong(contextId)
+ && shaderList.get(i).getId() == Integer
+ .parseInt(vertexShaderID)) {
+ vertexSrc = DownloadContentfileManager
+ .getFileContents(shaderList.get(i).getShaderSrc());
} else if (shaderList.get(i).getId() == Integer
.parseInt(fragmentID)) {
- fragmentSrc = shaderList.get(i).getShaderSrc();
+ fragmentSrc = DownloadContentfileManager
+ .getFileContents(shaderList.get(i).getShaderSrc());
}
}
import org.eclipse.swt.custom.StackLayout;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
+import org.tizen.dynamicanalyzer.common.DASelectionData;
import org.tizen.dynamicanalyzer.nl.GLPageLabels;
import org.tizen.dynamicanalyzer.nl.ThreadPageLabels;
import org.tizen.dynamicanalyzer.resources.ColorResources;
import org.tizen.dynamicanalyzer.resources.FontResources;
import org.tizen.dynamicanalyzer.resources.ImageResources;
+import org.tizen.dynamicanalyzer.swap.model.data.LogData;
import org.tizen.dynamicanalyzer.ui.common.SetRangeMarkerMouseMoveListener;
import org.tizen.dynamicanalyzer.ui.common.UICommonConstants;
import org.tizen.dynamicanalyzer.ui.opengl.GLPage;
import org.tizen.dynamicanalyzer.ui.opengl.data.GLDataManager;
import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLSelectionData;
import org.tizen.dynamicanalyzer.ui.range.RangeDataManager;
+import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
import org.tizen.dynamicanalyzer.ui.timeline.logparser.LifecycleLogParser;
import org.tizen.dynamicanalyzer.ui.widgets.TitleComboPopupRenderer;
import org.tizen.dynamicanalyzer.widgets.button.DACustomButtonRenderer;
frameRateChartBoard.updateViewFromDBData();
}
}
+ } else if (vdata instanceof DASelectionData) {
+ DASelectionData selData = (DASelectionData) vdata;
+ if (selData.isLogData()) {
+ Object obData = selData.getData();
+ if (null != obData && (obData instanceof LogData)) { // summary
+ LogData ldata = (LogData) obData;
+ long dataTime = ldata.getTime();
+ double selectionTime = dataTime
+ / TimelineConstants.MEGA_DOUBLE;
+ if (selectionTime <= 1) {
+ selectionTime = GLDataManager.getInstance()
+ .getStartFrameRateTime();
+ }
+ frameRateChartBoard.setVisibleMiddleTime(selectionTime);
+ DAChartPlotIntervalMarker intervalMarker = (DAChartPlotIntervalMarker) frameRateChartBoard
+ .getMarkers().get(
+ UICommonConstants.SELECTION_MARKER_INDEX);
+ intervalMarker.setInterval(selectionTime, selectionTime);
+ frameRateChartBoard.updateViewFromDBData();
+ }
+ }
}
}
*/
package org.tizen.dynamicanalyzer.ui.opengl.data;
-import java.io.File;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
-import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
-import org.tizen.dynamicanalyzer.common.AnalyzerManager;
import org.tizen.dynamicanalyzer.constant.CommonConstants;
import org.tizen.dynamicanalyzer.database.DBColumn;
import org.tizen.dynamicanalyzer.database.DBConstants;
}
public GLFrameType selectOpenGLAPIData(int frameIndex) {
- if (null != AnalyzerManager.getProject()) {
- SqlConnectionManager.establishConnection(AnalyzerManager
- .getProject().getSavePath()
- + File.separator
- + AnalyzerConstants.DATABASE_NAME);
- }
String query = String.format(
SELECT_API_TABLE_QUERY_FROM_FRAME_TIME_CHART, frameIndex);
List<List<Object>> result = SqlConnectionManager.executeQuery(query);
public List<List<Object>> selectOpenGLAPIData(int frameStartIndex,
int frameEndIndex) {
- if (null != AnalyzerManager.getProject()) {
- SqlConnectionManager.establishConnection(AnalyzerManager
- .getProject().getSavePath()
- + File.separator
- + AnalyzerConstants.DATABASE_NAME);
- }
String query = String.format(
SELECT_API_TABLE_QUERY_FROM_FRAME_RATE_CHART, frameStartIndex,
frameEndIndex);
import org.tizen.dynamicanalyzer.ui.opengl.data.type.FrameCountInfoType;
import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLAPINameDefine;
import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLAPIType;
+import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLES20ErrorDefine;
import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLFrameType;
+import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLSharingContextType;
+import org.tizen.dynamicanalyzer.ui.summary.failed.FailedData;
import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
import org.tizen.dynamicanalyzer.util.DALogger;
public class GLDataManager extends PageDataManager {
private static final DALogger DA_LOG = DALogger.getInstance();
private static GLDataManager instance = null;
- private GLStateDataMaker GLStateDataMagerInstance = null;
+ private GLStateDataMaker GLStateDataMaker = null;
private GLFrameType glFrameData = null;
private List<FrameCountInfoType> frameInfoList;
private GLStateProgramDBTableManager stateProgramDBTable = null;
private GLStateHistoryDBTableManager stateHistoryDBTable = null;
private GLStateTextureDBTableManager stateTextureDBTable = null;
+ private GLStateSharingDBTableManager stateSharingDBTable = null;
private boolean isShowFrameRateChart = true;
+ List<GLSharingContextType> sharingContextList = null;
+
public static GLDataManager getInstance() {
if (instance == null) {
instance = new GLDataManager();
currentFrameTimeIndex = 1;
glFrameData = new GLFrameType(currentFrameTimeIndex);
frameInfoList = new ArrayList<FrameCountInfoType>();
- GLStateDataMagerInstance = new GLStateDataMaker();
+ GLStateDataMaker = new GLStateDataMaker();
apiDBTable = new GLAPIDBTableManager();
addDBTable(apiDBTable);
frameRateDBTable = new GLFrameRateDBTableManager();
addDBTable(stateHistoryDBTable);
stateTextureDBTable = new GLStateTextureDBTableManager();
addDBTable(stateTextureDBTable);
+ stateSharingDBTable = new GLStateSharingDBTableManager();
+ addDBTable(stateSharingDBTable);
}
public void clear() {
currentFrameTimeIndex = 1;
glFrameData = new GLFrameType(currentFrameTimeIndex);
frameInfoList = new ArrayList<FrameCountInfoType>();
- GLStateDataMagerInstance.clear();
+ GLStateDataMaker.clear();
+ sharingContextList = new ArrayList<GLSharingContextType>();
}
public void openProcess() {
if (currentFrameTimeIndex == 1) {
frameRateIndex = 1;
}
- GLStateDataMagerInstance.addGLAPIData(logData, frameRateIndex,
+ GLStateDataMaker.addGLAPIData(logData, frameRateIndex,
currentFrameTimeIndex);
+
+ checkFailedAPI(logData);
+
}
frameTimeDBTable.insertData(insetFrameTimeChartDataList);
}
+ private void checkFailedAPI(GLES20LogData logData) {
+ if (logData.getErrno() != GLES20ErrorDefine.EGL_SUCCESS
+ && logData.getErrno() != GLES20ErrorDefine.GL_SUCCESS) {
+ FailedData ffd = new FailedData(logData);
+ AnalyzerManager.getFailedChecker().getFailedList().add(ffd);
+ }
+ }
+
private void makeFrameRateChartDataList(GLES20LogData logData) {
int time = getTimeLieTime(logData);
for (FrameCountInfoType data : frameInfoList) {
frameRateData.setTime(time);
frameRateData.setStartFrameIndex(currentFrameTimeIndex);
frameRateData.setErrno(glFrameData.hasError());
+ frameRateData.setPid(logData.getPid());
frameRateData.addFrameCount();
frameInfoList.add(frameRateData);
}
framRateChartData.add(data.getFrameCount() - 1);
framRateChartData.add(data.getStartFrameIndex());
framRateChartData.add(data.hasErrno());
+ framRateChartData.add(data.getPid());
insetData.add(framRateChartData);
removeframeInfoList.add(data);
framRateChartData.add(data.getFrameCount());
framRateChartData.add(data.getStartFrameIndex());
framRateChartData.add(data.hasErrno());
+ framRateChartData.add(data.getPid());
insetData.add(framRateChartData);
removeframeInfoList.add(data);
}
framTimeChartData.add(glFrameData.hasError());
framTimeChartData.add(glFrameData.getStartSeq());
framTimeChartData.add(glFrameData.getEndSeq());
+ framTimeChartData.add(logData.getPid());
return framTimeChartData;
}
return apiDBTable;
}
- public GLStateDataMaker getStateDataMagerInstance() {
- return GLStateDataMagerInstance;
+ public GLStateDataMaker getStateDataMake() {
+ return GLStateDataMaker;
}
public GLFrameRateDBTableManager getFrameRateDBTableManager() {
return stateTextureDBTable;
}
+ public GLStateSharingDBTableManager getStateSharingDBTableManage() {
+ return stateSharingDBTable;
+ }
+
public boolean isShowFrameRateChart() {
return isShowFrameRateChart;
}
public void setStartFrameRateTime(int startFrameRateTime) {
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;
+ }
}
*/
package org.tizen.dynamicanalyzer.ui.opengl.data;
-import java.io.File;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
-import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
-import org.tizen.dynamicanalyzer.common.AnalyzerManager;
import org.tizen.dynamicanalyzer.constant.CommonConstants;
import org.tizen.dynamicanalyzer.database.DBColumn;
import org.tizen.dynamicanalyzer.database.DBConstants;
import org.tizen.dynamicanalyzer.database.DBTable;
import org.tizen.dynamicanalyzer.database.SqlConnectionManager;
import org.tizen.dynamicanalyzer.ui.opengl.data.type.FrameCountInfoType;
+import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
public class GLFrameRateDBTableManager extends DBTable {
private static final String TABLENAME = "GL_FRAME_RATE";//$NON-NLS-1$
public static final String FRAME_COUNT = "FRAME_COUNT";//$NON-NLS-1$
public static final String FRAME_INDEX = "FRAME_INDEX";//$NON-NLS-1$
public static final String ERROR_INFO = "ERROR_INFO";//$NON-NLS-1$
+ public static final String PID = DBConstants.COMMON_COLUMN_PID;
public final static int TABLE_CHART_TIME_INDEX = 0;
public final static int TABLE_FRAME_COUNT_INDEX = 1;
public final static int TABLE_FRAME_INDEX_INDEX = 2;
public final static int TABLE_ERROR_INFO_INDEX = 3;
+ public final static int TABLE_PID_INDEX = 4;
private static final String SELECT_FRAME_RATE_TABLE_QUERY = "select "//$NON-NLS-1$
+ CHART_TIME + CommonConstants.COMMA
+ FRAME_COUNT
+ CommonConstants.COMMA + FRAME_INDEX
+ CommonConstants.COMMA
- + ERROR_INFO + " from "//$NON-NLS-1$
+ + ERROR_INFO + CommonConstants.COMMA + PID + " from "//$NON-NLS-1$
+ TABLENAME + " where '%s' <= " + CHART_TIME + " and " + CHART_TIME//$NON-NLS-1$ //$NON-NLS-2$
+ " <= '%s'";//$NON-NLS-1$
+ private static final String SELECT_PID_FRAME_RATE_TABLE_QUERY = "select "//$NON-NLS-1$
+ + CHART_TIME + CommonConstants.COMMA
+ + FRAME_COUNT
+ + CommonConstants.COMMA + FRAME_INDEX
+ + CommonConstants.COMMA
+ + ERROR_INFO + CommonConstants.COMMA + PID + " from "//$NON-NLS-1$
+ + TABLENAME + " where '%s' <= " + CHART_TIME + " and " + CHART_TIME//$NON-NLS-1$ //$NON-NLS-2$
+ + " <= '%s' and " + PID + " = '%s'";//$NON-NLS-1$
+
@Override
public String getTableName() {
return TABLENAME;
DBConstants.INTEGER));
addColumn(new DBColumn(ERROR_INFO, DBConstants.NOT_NULL,
DBConstants.INTEGER));
+ addColumn(new DBColumn(PID, DBConstants.NOT_NULL, DBConstants.INTEGER));
}
public final void insert(List<List<Object>> data) {
}
public FrameCountInfoType selectFrameCountInfo(int startIndex, int endIndex) {
- if (null != AnalyzerManager.getProject()) {
- SqlConnectionManager.establishConnection(AnalyzerManager
- .getProject().getSavePath()
- + File.separator
- + AnalyzerConstants.DATABASE_NAME);
- }
String query = String.format(SELECT_FRAME_RATE_TABLE_QUERY, startIndex,
endIndex);
List<List<Object>> result = SqlConnectionManager.executeQuery(query);
}
public List<List<Object>> selectFrameRate(double startIndex, double endIndex) {
- if (null != AnalyzerManager.getProject()) {
- SqlConnectionManager.establishConnection(AnalyzerManager
- .getProject().getSavePath()
- + File.separator
- + AnalyzerConstants.DATABASE_NAME);
- }
- if (null != AnalyzerManager.getProject()) {
- SqlConnectionManager.establishConnection(AnalyzerManager
- .getProject().getSavePath()
- + File.separator
- + AnalyzerConstants.DATABASE_NAME);
- }
String query = String.format(SELECT_FRAME_RATE_TABLE_QUERY, startIndex,
endIndex);
+ if (ToolbarArea.getInstance().getSelectedPid() != 0) {
+ query = String.format(SELECT_PID_FRAME_RATE_TABLE_QUERY,
+ startIndex, endIndex, ToolbarArea.getInstance()
+ .getSelectedPid());
+ }
return SqlConnectionManager.executeQuery(query);
}
(Integer) (rowData.get(TABLE_FRAME_INDEX_INDEX)));
prep.setInt(TABLE_ERROR_INFO_INDEX + 1,
(Integer) (rowData.get(TABLE_ERROR_INFO_INDEX)));
+ prep.setInt(TABLE_PID_INDEX + 1,
+ (Integer) (rowData.get(TABLE_PID_INDEX)));
} catch (SQLException e) {
e.printStackTrace();
isPrepared = false;
*/
package org.tizen.dynamicanalyzer.ui.opengl.data;
-import java.io.File;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
-import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
-import org.tizen.dynamicanalyzer.common.AnalyzerManager;
import org.tizen.dynamicanalyzer.constant.CommonConstants;
import org.tizen.dynamicanalyzer.database.DBColumn;
import org.tizen.dynamicanalyzer.database.DBConstants;
import org.tizen.dynamicanalyzer.database.DBTable;
import org.tizen.dynamicanalyzer.database.SqlConnectionManager;
+import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
public class GLFrameTimeDBTableManager extends DBTable {
private static final String TABLENAME = "GL_FRAME_TIME";//$NON-NLS-1$
public static final String ERROR_INFO = "ERROR_INFO";//$NON-NLS-1$
public static final String START_SEQ = "START_SEQ";//$NON-NLS-1$
public static final String END_SEQ = "END_SEQ";//$NON-NLS-1$
+ public static final String PID = DBConstants.COMMON_COLUMN_PID;
public final static int TABLE_CHART_TIME_INDEX = 0;
public final static int TABLE_FRAME_RATE_INDEX = 1;
public final static int TABLE_ERROR_INFO_INDEX = 3;
public final static int TABLE_START_SEQ_INDEX = 4;
public final static int TABLE_END_SEQ_INDEX = 5;
+ public final static int TABLE_PID_INDEX = 6;
- private static final String SELECT_TOTALB_FRAME_TIME_TABLE_QUERY = "select "//$NON-NLS-1$
- + CHART_TIME
- + CommonConstants.COMMA
+ private static final String SELECT_TOTAL_FRAME_TIME_TABLE_QUERY = "select "//$NON-NLS-1$
+ + CHART_TIME + CommonConstants.COMMA
+ FRAME_RATE
+ + CommonConstants.COMMA + VALUE
+ CommonConstants.COMMA
- + VALUE
- + CommonConstants.COMMA
- + ERROR_INFO
- + CommonConstants.COMMA
+ + ERROR_INFO + CommonConstants.COMMA
+ START_SEQ
+ CommonConstants.COMMA + END_SEQ + " from "//$NON-NLS-1$
+ TABLENAME;
+ TABLENAME + " where '%s' <= " + CHART_TIME + " and "//$NON-NLS-1$//$NON-NLS-2$
+ CHART_TIME + " <= '%s'";//$NON-NLS-1$
+ private static final String SELECT_PID_FRAME_TIME_TABLE_QUERY = "select "//$NON-NLS-1$
+ + CHART_TIME + CommonConstants.COMMA
+ + FRAME_RATE
+ + CommonConstants.COMMA + VALUE
+ + CommonConstants.COMMA
+ + ERROR_INFO + CommonConstants.COMMA
+ + START_SEQ
+ + CommonConstants.COMMA + END_SEQ + " from "//$NON-NLS-1$
+ + TABLENAME + " where '%s' <= " + CHART_TIME + " and "//$NON-NLS-1$//$NON-NLS-2$
+ + CHART_TIME + " <= '%s' and " + PID + " = '%'";//$NON-NLS-1$
+
@Override
public String getTableName() {
return TABLENAME;
DBConstants.INTEGER));
addColumn(new DBColumn(END_SEQ, DBConstants.NOT_NULL,
DBConstants.INTEGER));
+ addColumn(new DBColumn(PID, DBConstants.NOT_NULL, DBConstants.INTEGER));
}
public int getFrameSize() {
- if (null != AnalyzerManager.getProject()) {
- SqlConnectionManager.establishConnection(AnalyzerManager
- .getProject().getSavePath()
- + File.separator
- + AnalyzerConstants.DATABASE_NAME);
- }
List<List<Object>> result = SqlConnectionManager
- .executeQuery(SELECT_TOTALB_FRAME_TIME_TABLE_QUERY);
+ .executeQuery(SELECT_TOTAL_FRAME_TIME_TABLE_QUERY);
if (null == result || result.size() == 0 || result.get(0).size() == 0) {
return 0;
} else {
}
public List<List<Object>> selectFrameTime(double startIndex, double endIndex) {
- if (null != AnalyzerManager.getProject()) {
- SqlConnectionManager.establishConnection(AnalyzerManager
- .getProject().getSavePath()
- + File.separator
- + AnalyzerConstants.DATABASE_NAME);
- }
String query = String.format(SELECT_FRAME_TIME_TABLE_QUERY, startIndex,
endIndex);
+ if (ToolbarArea.getInstance().getSelectedPid() != 0) {
+ query = String.format(SELECT_PID_FRAME_TIME_TABLE_QUERY,
+ startIndex, endIndex, ToolbarArea.getInstance()
+ .getSelectedPid());
+ }
+
return SqlConnectionManager.executeQuery(query);
}
@Override
public boolean prepare(PreparedStatement prep, List<Object> rowData) {
boolean isPrepared = true;
-
int columnsize = getColumnSize();
if (columnsize != rowData.size()) {
isPrepared = false;
(Integer) (rowData.get(TABLE_START_SEQ_INDEX)));
prep.setInt(TABLE_END_SEQ_INDEX + 1,
(Integer) (rowData.get(TABLE_END_SEQ_INDEX)));
+ prep.setInt(TABLE_PID_INDEX + 1,
+ (Integer) (rowData.get(TABLE_PID_INDEX)));
} catch (SQLException e) {
e.printStackTrace();
*/
package org.tizen.dynamicanalyzer.ui.opengl.data;
-import java.io.File;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
-import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
-import org.tizen.dynamicanalyzer.common.AnalyzerManager;
import org.tizen.dynamicanalyzer.constant.CommonConstants;
import org.tizen.dynamicanalyzer.database.DBColumn;
import org.tizen.dynamicanalyzer.database.DBConstants;
}
public List<String> getContextData(String seq, long contextID) {
- if (null != AnalyzerManager.getProject()) {
- SqlConnectionManager.establishConnection(AnalyzerManager
- .getProject().getSavePath()
- + File.separator
- + AnalyzerConstants.DATABASE_NAME);
- }
String query = String.format(SELECT_CONTEXT_TABLE__QUERY, seq,
contextID);
List<List<Object>> result = SqlConnectionManager.executeQuery(query);
package org.tizen.dynamicanalyzer.ui.opengl.data;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
import org.tizen.dynamicanalyzer.constant.CommonConstants;
import org.tizen.dynamicanalyzer.swap.model.data.GLES20LogData;
import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLAPINameDefine;
import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLConstantDefine;
import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLContextNameEnum;
+import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLES20ErrorDefine;
+import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLSharingContextType;
import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLStateProgramType;
import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLStateShaderType;
import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLStateTextureType;
import org.tizen.dynamicanalyzer.util.DALogger;
+import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
+import org.tizen.dynamicanalyzer.utils.DownloadContentfileManager;
public class GLStateDataMaker {
public static int API_TYPE_INIT = 0;
public static int API_TYPE_CONTEXT = 1;
public static int API_TYPE_NO_CONTEXT = 2;
- private List<GLStateProgramType> programList;
- private List<GLStateShaderType> shaderList;
- private List<GLStateTextureType> textureList;
-
private LinkedHashMap<Long, ContextValueType> contextHashMap;
public GLStateDataMaker() {
}
public void init() {
- programList = new ArrayList<GLStateProgramType>();
- shaderList = new ArrayList<GLStateShaderType>();
- textureList = new ArrayList<GLStateTextureType>();
contextHashMap = new LinkedHashMap<Long, ContextValueType>();
}
String parameter = logData.getArgs();
long errorNo = logData.getErrno();
long contextId = logData.getCurrentContextName();
- setContextValueList(contextId, seq,
- GLContextNameEnum.CONTEXT_ID.ordinal(),
- Long.toString(contextId), currentFrameRateIndex,
- currentFrameIndex);
String contextValue = logData.getContextValue().trim();
ContextValueType curretnContextValue = contextHashMap.get(contextId);
}
if (apiType == API_TYPE_INIT) {
- String contextValues[] = contextValue.split(CommonConstants.COMMA);
- int maxVertexAttribs = Integer.parseInt(contextValues[0]);
- int maxTextureUnits = Integer.parseInt(contextValues[1].trim());
-
+ int maxVertexAttribs = 0;
+ int maxTextureUnits = 0;
+ if (contextValue.contains(CommonConstants.COMMA)) {
+ String contextValues[] = contextValue
+ .split(CommonConstants.COMMA);
+ maxVertexAttribs = Integer.parseInt(contextValues[0]);
+ maxTextureUnits = Integer.parseInt(contextValues[1].trim());
+ } else {
+ maxVertexAttribs = 5;
+ maxTextureUnits = 5;
+ }
curretnContextValue.setTextureUnits(maxTextureUnits);
curretnContextValue.setVertexAttribs(maxVertexAttribs);
- } else if (apiType == API_TYPE_CONTEXT && errorNo == 0) {
+ } else if (apiType == API_TYPE_CONTEXT
+ && (errorNo == GLES20ErrorDefine.EGL_SUCCESS || errorNo == GLES20ErrorDefine.GL_SUCCESS)) {
String parameters[] = parameter.split(CommonConstants.COMMA
+ CommonConstants.SPACE);
String contextValues[] = contextValue.split(CommonConstants.COMMA);
viewPort.toString(), currentFrameRateIndex,
currentFrameIndex);
}
-
+ eglAPILogManager(logData, currentFrameRateIndex, currentFrameIndex);
programLogManage(logData);
textureLogManager(logData, currentFrameRateIndex, currentFrameIndex);
- }
+ }
}
- private void textureLogManager(GLES20LogData logData,
+ private void eglAPILogManager(GLES20LogData logData,
int currentFrameRateIndex, int currentFrameIndex) {
- int apiType = logData.getApiType();
- long errorNo = logData.getErrno();
- if (apiType == API_TYPE_CONTEXT && errorNo == 0) {
-
- String seq = String.valueOf(logData.getSeq());
- String apiName = logData.getApiName();
- String parameter = logData.getArgs();
- long contextId = logData.getCurrentContextName();
+ String seq = String.valueOf(logData.getSeq());
+ String apiName = logData.getApiName();
+ String parameter = logData.getArgs();
+ long contextId = logData.getCurrentContextName();
+ String parameters[] = parameter.split(CommonConstants.COMMA
+ + CommonConstants.SPACE);
+ String returnValue = logData.getReturn();
+ if (apiName.equals(GLAPINameDefine.API_EGL_CREATE_CONTEXT)) {
+ contextId = AnalyzerUtil.addrToLong(returnValue);
+ long sharingContextId = -1;
+ if (parameters.length > 2) {
+ sharingContextId = AnalyzerUtil.addrToLong(parameters[2]);
+ }
setContextValueList(contextId, seq,
GLContextNameEnum.CONTEXT_ID.ordinal(),
Long.toString(contextId), currentFrameRateIndex,
currentFrameIndex);
- String contextValue = logData.getContextValue().trim();
- String parameters[] = parameter.split(CommonConstants.COMMA
- + CommonConstants.SPACE);
- String contextValues[] = contextValue.split(CommonConstants.COMMA);
+ if (sharingContextId != 0) {
+ ContextValueType curretnContextValue = contextHashMap
+ .get(contextId);
+ curretnContextValue.addSharingContextID(contextHashMap,
+ sharingContextId);
+ }
- if (apiName.equals(GLAPINameDefine.API_GL_TEXTURE_ACTIVE)) {
- setContextValueList(contextId, seq,
- GLContextNameEnum.TEXTURE_ACTIVE.ordinal(),
- parameters[0], currentFrameRateIndex, currentFrameIndex);
- } else if (apiName.equals(GLAPINameDefine.API_GL_TEXTURE_GEN)) {
- int num = Integer.parseInt(parameters[0]);
+ List<GLSharingContextType> sharingInfoList = new ArrayList<GLSharingContextType>();
+ Set<Entry<Long, ContextValueType>> set = contextHashMap.entrySet();
+ Iterator<Entry<Long, ContextValueType>> itr = set.iterator();
+ while (itr.hasNext()) {
+ Map.Entry<Long, ContextValueType> e = (Map.Entry<Long, ContextValueType>) itr
+ .next();
+ ContextValueType contextValue = e.getValue();
+ for (int i = 0; i < contextValue.sharingContextIdList.size(); i++) {
+ sharingInfoList.add(new GLSharingContextType(
+ contextValue.contextID,
+ contextValue.sharingContextIdList.get(i)));
+ }
+ }
+ GLDataManager.getInstance().getStateSharingDBTableManage()
+ .insertSharingData(sharingInfoList);
+ }
- for (int i = 0; i < num; i++) {
- textureList.add(new GLStateTextureType(Integer
- .parseInt(contextValues[i].trim()), contextId,
- logData.getSeq()));
+ }
+
+ private void textureLogManager(GLES20LogData logData,
+ int currentFrameRateIndex, int currentFrameIndex) {
+
+ String seq = String.valueOf(logData.getSeq());
+ String apiName = logData.getApiName();
+ String parameter = logData.getArgs();
+ long contextId = logData.getCurrentContextName();
+ setContextValueList(contextId, seq,
+ GLContextNameEnum.CONTEXT_ID.ordinal(),
+ Long.toString(contextId), currentFrameRateIndex,
+ currentFrameIndex);
+ String contextValue = logData.getContextValue().trim();
+ String parameters[] = parameter.split(CommonConstants.COMMA
+ + CommonConstants.SPACE);
+ String contextValues[] = contextValue.split(CommonConstants.COMMA);
+ ContextValueType curretnContextValue = contextHashMap.get(contextId);
+
+ if (apiName.equals(GLAPINameDefine.API_GL_TEXTURE_ACTIVE)) {
+ setContextValueList(contextId, seq,
+ GLContextNameEnum.TEXTURE_ACTIVE.ordinal(), parameters[0],
+ currentFrameRateIndex, currentFrameIndex);
+ } else if (apiName.equals(GLAPINameDefine.API_GL_TEXTURE_GEN)) {
+ int num = Integer.parseInt(parameters[0]);
+
+ for (int i = 0; i < num; i++) {
+ curretnContextValue.textureList.add(new GLStateTextureType(
+ Integer.parseInt(contextValues[i].trim()), contextId,
+ logData.getSeq()));
+ }
+ } else if (apiName.equals(GLAPINameDefine.API_GL_TEXTURE_BIND)) {
+ for (int i = 0; i < curretnContextValue.textureList.size(); i++) {
+ if (curretnContextValue.textureList.get(i).getObjID() == Integer
+ .parseInt(parameters[1].trim())
+ && curretnContextValue.textureList.get(i)
+ .getContextID() == contextId) {
+ curretnContextValue.textureList.get(i).setTrxtureType(
+ Integer.parseInt(parameters[0].trim()));
}
- } else if (apiName.equals(GLAPINameDefine.API_GL_TEXTURE_BIND)) {
- for (int i = 0; i < textureList.size(); i++) {
- if (textureList.get(i).getObjID() == Integer
- .parseInt(parameters[1].trim())
- && textureList.get(i).getContextID() == contextId) {
- textureList.get(i).setTrxtureType(
+ }
+ } else if (apiName.equals(GLAPINameDefine.API_GL_TEXTURE_DEL)) {
+ int num = Integer.parseInt(parameters[0]);
+
+ for (int i = 0; i < num; i++) {
+ for (int j = 0; j < curretnContextValue.textureList.size(); j++) {
+ if (curretnContextValue.textureList.get(j).getObjID() == Integer
+ .parseInt(parameters[0].trim())
+ && curretnContextValue.textureList.get(j)
+ .getContextID() == contextId) {
+ curretnContextValue.textureList.get(j).setTrxtureType(
Integer.parseInt(parameters[0].trim()));
}
}
- } else if (apiName.equals(GLAPINameDefine.API_GL_TEXTURE_DEL)) {
- int num = Integer.parseInt(parameters[0]);
+ }
+ } else if (apiName.equals(GLAPINameDefine.API_GL_TEXTURE_PARAM_F)
+ || apiName.equals(GLAPINameDefine.API_GL_TEXTURE_PARAM_I)) {
- for (int i = 0; i < num; i++) {
- for (int j = 0; j < textureList.size(); j++) {
- if (textureList.get(j).getObjID() == Integer
- .parseInt(parameters[0].trim())
- && textureList.get(j).getContextID() == contextId) {
- textureList.get(j).setTrxtureType(
- Integer.parseInt(parameters[0].trim()));
- }
- }
- }
- } else if (apiName.equals(GLAPINameDefine.API_GL_TEXTURE_PARAM_F)
- || apiName.equals(GLAPINameDefine.API_GL_TEXTURE_PARAM_I)) {
-
- for (int i = 0; i < textureList.size(); i++) {
- if (textureList.get(i).getContextID() == contextId) {
- if (textureList.get(i).getTrxtureType() == Integer
- .parseInt(parameters[0].trim())) {
-
- if (parameters[1]
- .equals(GLAPINameDefine.GL_TEXTURE_MAG_FILTER)) {
- textureList.get(i).setMagFilter(
- Integer.parseInt(parameters[2]));
- } else if (parameters[1]
- .equals(GLAPINameDefine.GL_TEXTURE_MIN_FILTER)) {
- textureList.get(i).setMinFilter(
- Integer.parseInt(parameters[2]));
- } else if (parameters[1]
- .equals(GLAPINameDefine.GL_TEXTURE_WRAP_S)) {
- textureList.get(i).setWrapS(
- Integer.parseInt(parameters[2]));
- } else if (parameters[1]
- .equals(GLAPINameDefine.GL_TEXTURE_WRAP_T)) {
- textureList.get(i).setWrapT(
- Integer.parseInt(parameters[2]));
- } else {
- DALogger.getInstance().error(
- "undefine type : " + parameters[1]);
- }
+ for (int i = 0; i < curretnContextValue.textureList.size(); i++) {
+ if (curretnContextValue.textureList.get(i).getContextID() == contextId) {
+ if (curretnContextValue.textureList.get(i).getTrxtureType() == Integer
+ .parseInt(parameters[0].trim())) {
+
+ if (parameters[1]
+ .equals(GLAPINameDefine.GL_TEXTURE_MAG_FILTER)) {
+ curretnContextValue.textureList.get(i)
+ .setMagFilter(
+ Integer.parseInt(parameters[2]));
+ } else if (parameters[1]
+ .equals(GLAPINameDefine.GL_TEXTURE_MIN_FILTER)) {
+ curretnContextValue.textureList.get(i)
+ .setMinFilter(
+ Integer.parseInt(parameters[2]));
+ } else if (parameters[1]
+ .equals(GLAPINameDefine.GL_TEXTURE_WRAP_S)) {
+ curretnContextValue.textureList.get(i).setWrapS(
+ Integer.parseInt(parameters[2]));
+ } else if (parameters[1]
+ .equals(GLAPINameDefine.GL_TEXTURE_WRAP_T)) {
+ curretnContextValue.textureList.get(i).setWrapT(
+ Integer.parseInt(parameters[2]));
+ } else {
+ DALogger.getInstance().error(
+ "undefine type : " + parameters[1]);
}
}
}
- insertTextureData();
- } else if (apiName.equals(GLAPINameDefine.API_GL_TEXTURE_PARAM_FV)
- || apiName.equals(GLAPINameDefine.API_GL_TEXTURE_PARAM_IV)) {
+ }
+ insertTextureData();
+ } else if (apiName.equals(GLAPINameDefine.API_GL_TEXTURE_PARAM_FV)
+ || apiName.equals(GLAPINameDefine.API_GL_TEXTURE_PARAM_IV)) {
- for (int i = 0; i < textureList.size(); i++) {
- if (textureList.get(i).getObjID() == Integer
- .parseInt(parameters[0].trim())
- && textureList.get(i).getContextID() == contextId) {
- if (textureList.get(i).getTrxtureType() == Integer
- .parseInt(parameters[0].trim())) {
-
- if (parameters[1]
- .equals(GLAPINameDefine.GL_TEXTURE_MAG_FILTER)) {
- textureList.get(i).setMagFilter(
- Integer.parseInt(parameters[2]));
- } else if (parameters[1]
- .equals(GLAPINameDefine.GL_TEXTURE_MIN_FILTER)) {
- textureList.get(i).setMinFilter(
- Integer.parseInt(parameters[2]));
- } else if (parameters[1]
- .equals(GLAPINameDefine.GL_TEXTURE_WRAP_S)) {
- textureList.get(i).setWrapS(
- Integer.parseInt(parameters[2]));
- } else if (parameters[1]
- .equals(GLAPINameDefine.GL_TEXTURE_WRAP_T)) {
- textureList.get(i).setWrapT(
- Integer.parseInt(parameters[2]));
- }
+ for (int i = 0; i < curretnContextValue.textureList.size(); i++) {
+ if (curretnContextValue.textureList.get(i).getObjID() == Integer
+ .parseInt(parameters[0].trim())
+ && curretnContextValue.textureList.get(i)
+ .getContextID() == contextId) {
+ if (curretnContextValue.textureList.get(i).getTrxtureType() == Integer
+ .parseInt(parameters[0].trim())) {
+
+ if (parameters[1]
+ .equals(GLAPINameDefine.GL_TEXTURE_MAG_FILTER)) {
+ curretnContextValue.textureList.get(i)
+ .setMagFilter(
+ Integer.parseInt(parameters[2]));
+ } else if (parameters[1]
+ .equals(GLAPINameDefine.GL_TEXTURE_MIN_FILTER)) {
+ curretnContextValue.textureList.get(i)
+ .setMinFilter(
+ Integer.parseInt(parameters[2]));
+ } else if (parameters[1]
+ .equals(GLAPINameDefine.GL_TEXTURE_WRAP_S)) {
+ curretnContextValue.textureList.get(i).setWrapS(
+ Integer.parseInt(parameters[2]));
+ } else if (parameters[1]
+ .equals(GLAPINameDefine.GL_TEXTURE_WRAP_T)) {
+ curretnContextValue.textureList.get(i).setWrapT(
+ Integer.parseInt(parameters[2]));
}
}
}
- insertTextureData();
}
+ insertTextureData();
}
}
private void insertTextureData() {
- for (int i = 0; i < textureList.size(); i++) {
- if (textureList.get(i).validInsertState()) {
- GLDataManager.getInstance().getStateTextureDBTableManage()
- .insertData(textureList.get(i));
- textureList.remove(i);
- break;
+ Set<Entry<Long, ContextValueType>> set = contextHashMap.entrySet();
+ Iterator<Entry<Long, ContextValueType>> itr = set.iterator();
+ while (itr.hasNext()) {
+ Map.Entry<Long, ContextValueType> e = (Map.Entry<Long, ContextValueType>) itr
+ .next();
+ ContextValueType contextValue = e.getValue();
+ for (int i = 0; i < contextValue.textureList.size(); i++) {
+ if (contextValue.textureList.get(i).validInsertState()) {
+ GLDataManager.getInstance().getStateTextureDBTableManage()
+ .insertData(contextValue.textureList.get(i));
+ contextValue.textureList.remove(i);
+ break;
+ }
}
}
-
}
private void programLogManage(GLES20LogData logData) {
- int apiType = logData.getApiType();
- long errorNo = logData.getErrno();
- if (apiType == API_TYPE_CONTEXT && errorNo == 0) {
+ String apiName = logData.getApiName();
+ String parameter = logData.getArgs();
+ String contextValue = logData.getContextValue().trim();
+ String returnValue = logData.getReturn();
+ String parameters[] = parameter.split(CommonConstants.COMMA
+ + CommonConstants.SPACE);
+ String contextID = Long.toString(logData.getCurrentContextName());
+ long contextId = logData.getCurrentContextName();
+ ContextValueType curretnContextValue = contextHashMap.get(contextId);
- String apiName = logData.getApiName();
- String parameter = logData.getArgs();
- String contextValue = logData.getContextValue().trim();
- String returnValue = logData.getReturn();
- String parameters[] = parameter.split(CommonConstants.COMMA
- + CommonConstants.SPACE);
- String contextID = Long.toString(logData.getCurrentContextName());
-
- if (apiName.equals(GLAPINameDefine.API_GL_SHADER_CREATE)) {
- int shaderID = Integer.parseInt(returnValue);
- int shaderType = Integer.parseInt(parameter);
- GLStateShaderType stateShaderType = new GLStateShaderType(
- shaderID);
- stateShaderType.setShaderType(shaderType);
- shaderList.add(stateShaderType);
-
- } else if (apiName.equals(GLAPINameDefine.API_GL_SHADER_SOURCE)) {
- int shaderID = Integer.parseInt(parameters[0]);
- for (int i = 0; i < shaderList.size(); i++) {
- if (shaderList.get(i).getId() == shaderID) {
- shaderList.get(i).setShaderSrc(contextValue);
- return;
- }
+ if (apiName.equals(GLAPINameDefine.API_GL_SHADER_CREATE)) {
+ int shaderID = Integer.parseInt(returnValue);
+ int shaderType = Integer.parseInt(parameter);
+ GLStateShaderType stateShaderType = new GLStateShaderType(
+ contextId, shaderID);
+ stateShaderType.setShaderType(shaderType);
+ curretnContextValue.shaderList.add(stateShaderType);
+
+ } else if (apiName.equals(GLAPINameDefine.API_GL_SHADER_SOURCE)) {
+ int shaderID = Integer.parseInt(parameters[0]);
+ for (int i = 0; i < curretnContextValue.shaderList.size(); i++) {
+ if (curretnContextValue.shaderList.get(i).getId() == shaderID) {
+ curretnContextValue.shaderList.get(i).setShaderSrc(
+ DownloadContentfileManager
+ .getDowonloadFilePath(contextValue));
+ return;
}
- } else if (apiName.equals(GLAPINameDefine.API_GL_SHADER_COMPILE)) {
- int shaderID = Integer.parseInt(parameter);
- for (int i = 0; i < shaderList.size(); i++) {
- if (shaderList.get(i).getId() == shaderID) {
- shaderList.get(i).setCompileStatus(1);
- return;
- }
+ }
+ } else if (apiName.equals(GLAPINameDefine.API_GL_SHADER_COMPILE)) {
+ int shaderID = Integer.parseInt(parameter);
+ for (int i = 0; i < curretnContextValue.shaderList.size(); i++) {
+ if (curretnContextValue.shaderList.get(i).getId() == shaderID) {
+ curretnContextValue.shaderList.get(i).setCompileStatus(1);
+ return;
}
}
+ }
- else if (apiName.equals(GLAPINameDefine.API_GL_SHADER_DEL)) {
- int shaderId = Integer.parseInt(parameter);
- for (int i = 0; i < shaderList.size(); i++) {
- if (shaderList.get(i).getId() == shaderId) {
- shaderList.get(i).setDeleteStatus(1);
- break;
- }
+ else if (apiName.equals(GLAPINameDefine.API_GL_SHADER_DEL)) {
+ int shaderId = Integer.parseInt(parameter);
+ for (int i = 0; i < curretnContextValue.shaderList.size(); i++) {
+ if (curretnContextValue.shaderList.get(i).getId() == shaderId) {
+ curretnContextValue.shaderList.get(i).setDeleteStatus(1);
+ break;
}
}
+ }
- else if (apiName.equals(GLAPINameDefine.API_GL_PROGRAM_CREATE)) {
- int programID = Integer.parseInt(returnValue);
- GLStateProgramType stateProgramType = new GLStateProgramType(
- programID);
- programList.add(stateProgramType);
- } else if (apiName
- .equals(GLAPINameDefine.API_GL_PROGRAM_ATTACH_SHADER)) {
- int programID = Integer.parseInt(parameters[0]);
- int shaderID = Integer.parseInt(parameters[1]);
-
- boolean isFragementShaser = false;
- for (int i = 0; i < shaderList.size(); i++) {
- if (shaderList.get(i).getId() == shaderID) {
- if (shaderList.get(i).isFragementShader()) {
- isFragementShaser = true;
- } else {
- isFragementShaser = false;
- }
- break;
+ else if (apiName.equals(GLAPINameDefine.API_GL_PROGRAM_CREATE)) {
+ int programID = Integer.parseInt(returnValue);
+ GLStateProgramType stateProgramType = new GLStateProgramType(
+ programID);
+ curretnContextValue.programList.add(stateProgramType);
+ } else if (apiName.equals(GLAPINameDefine.API_GL_PROGRAM_ATTACH_SHADER)) {
+ int programID = Integer.parseInt(parameters[0]);
+ int shaderID = Integer.parseInt(parameters[1]);
+
+ boolean isFragementShaser = false;
+ for (int i = 0; i < curretnContextValue.shaderList.size(); i++) {
+ if (curretnContextValue.shaderList.get(i).getId() == shaderID) {
+ if (curretnContextValue.shaderList.get(i)
+ .isFragementShader()) {
+ isFragementShaser = true;
+ } else {
+ isFragementShaser = false;
}
+ break;
}
+ }
- for (int i = 0; i < programList.size(); i++) {
- if (programList.get(i).getId() == programID) {
- if (isFragementShaser) {
- programList.get(i).setFragmentShaderId(shaderID);
- } else {
- programList.get(i).setVertexShaderId(shaderID);
- }
- return;
+ for (int i = 0; i < curretnContextValue.programList.size(); i++) {
+ if (curretnContextValue.programList.get(i).getId() == programID) {
+ if (isFragementShaser) {
+ curretnContextValue.programList.get(i)
+ .setFragmentShaderId(shaderID);
+ } else {
+ curretnContextValue.programList.get(i)
+ .setVertexShaderId(shaderID);
}
+ return;
}
- } else if (apiName.equals(GLAPINameDefine.API_GL_PROGRAM_LINK)) {
- int programID = Integer.parseInt(parameter);
- for (int i = 0; i < programList.size(); i++) {
- if (programList.get(i).getId() == programID) {
- programList.get(i).setLinkStatus(1);
- break;
- }
+ }
+ } else if (apiName.equals(GLAPINameDefine.API_GL_PROGRAM_LINK)) {
+ int programID = Integer.parseInt(parameter);
+ for (int i = 0; i < curretnContextValue.programList.size(); i++) {
+ if (curretnContextValue.programList.get(i).getId() == programID) {
+ curretnContextValue.programList.get(i).setLinkStatus(1);
+ break;
}
- } else if (apiName
- .equals(GLAPINameDefine.API_GL_PROGRAM_DETATCH_SHADER)) {
- int programID = Integer.parseInt(parameters[0]);
- int shaderID = Integer.parseInt(parameters[1]);
- boolean isFragementShaser = false;
- for (int i = 0; i < shaderList.size(); i++) {
- if (shaderList.get(i).getId() == shaderID) {
- if (shaderList.get(i).isFragementShader()) {
- isFragementShaser = true;
- } else {
- isFragementShaser = false;
- }
- break;
+ }
+ } else if (apiName
+ .equals(GLAPINameDefine.API_GL_PROGRAM_DETATCH_SHADER)) {
+ int programID = Integer.parseInt(parameters[0]);
+ int shaderID = Integer.parseInt(parameters[1]);
+ boolean isFragementShaser = false;
+ for (int i = 0; i < curretnContextValue.shaderList.size(); i++) {
+ if (curretnContextValue.shaderList.get(i).getId() == shaderID) {
+ if (curretnContextValue.shaderList.get(i)
+ .isFragementShader()) {
+ isFragementShaser = true;
+ } else {
+ isFragementShaser = false;
}
+ break;
}
+ }
- for (int i = 0; i < programList.size(); i++) {
- if (programList.get(i).getId() == programID) {
- if (isFragementShaser) {
- programList.get(i).setFragmentShaderId(-1);
- } else {
- programList.get(i).setVertexShaderId(-1);
- }
- return;
+ for (int i = 0; i < curretnContextValue.programList.size(); i++) {
+ if (curretnContextValue.programList.get(i).getId() == programID) {
+ if (isFragementShaser) {
+ curretnContextValue.programList.get(i)
+ .setFragmentShaderId(-1);
+ } else {
+ curretnContextValue.programList.get(i)
+ .setVertexShaderId(-1);
}
+ return;
}
+ }
- } else if (apiName.equals(GLAPINameDefine.API_GL_PROGRAM_USE)) {
- int programId = Integer.parseInt(parameter);
- for (int i = 0; i < programList.size(); i++) {
- if (programList.get(i).getId() == programId) {
- programList.get(i).setContextName(
- Integer.parseInt(contextID));
- break;
- }
+ } else if (apiName.equals(GLAPINameDefine.API_GL_PROGRAM_USE)) {
+ long programId = Long.parseLong(parameter);
+ for (int i = 0; i < curretnContextValue.programList.size(); i++) {
+ if (curretnContextValue.programList.get(i).getId() == programId) {
+ curretnContextValue.programList.get(i).setContextId(
+ Integer.parseInt(contextID));
+ break;
}
+ }
- } else if (apiName.equals(GLAPINameDefine.API_GL_PROGRAM_DEL)) {
- int programId = Integer.parseInt(parameter);
- for (int i = 0; i < programList.size(); i++) {
- if (programList.get(i).getId() == programId) {
- programList.get(i).setDeleteStatus(1);
- break;
- }
+ } else if (apiName.equals(GLAPINameDefine.API_GL_PROGRAM_DEL)) {
+ int programId = Integer.parseInt(parameter);
+ for (int i = 0; i < curretnContextValue.programList.size(); i++) {
+ if (curretnContextValue.programList.get(i).getId() == programId) {
+ curretnContextValue.programList.get(i).setDeleteStatus(1);
+ break;
}
}
}
}
public List<GLStateProgramType> getProgramList() {
+ List<GLStateProgramType> programList = new ArrayList<GLStateProgramType>();
+ Set<Entry<Long, ContextValueType>> set = contextHashMap.entrySet();
+ Iterator<Entry<Long, ContextValueType>> itr = set.iterator();
+ while (itr.hasNext()) {
+ Map.Entry<Long, ContextValueType> e = (Map.Entry<Long, ContextValueType>) itr
+ .next();
+ ContextValueType contextValue = e.getValue();
+ for (int i = 0; i < contextValue.programList.size(); i++) {
+ programList.add(contextValue.programList.get(i));
+ }
+ }
return programList;
}
public List<GLStateShaderType> getShaderList() {
+ List<GLStateShaderType> shaderList = new ArrayList<GLStateShaderType>();
+ Set<Entry<Long, ContextValueType>> set = contextHashMap.entrySet();
+ Iterator<Entry<Long, ContextValueType>> itr = set.iterator();
+ while (itr.hasNext()) {
+ Map.Entry<Long, ContextValueType> e = (Map.Entry<Long, ContextValueType>) itr
+ .next();
+ ContextValueType contextValue = e.getValue();
+ for (int i = 0; i < contextValue.shaderList.size(); i++) {
+ shaderList.add(contextValue.shaderList.get(i));
+ }
+ }
return shaderList;
}
*/
package org.tizen.dynamicanalyzer.ui.opengl.data;
-import java.io.File;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
-import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
-import org.tizen.dynamicanalyzer.common.AnalyzerManager;
import org.tizen.dynamicanalyzer.constant.CommonConstants;
import org.tizen.dynamicanalyzer.database.DBColumn;
import org.tizen.dynamicanalyzer.database.DBConstants;
public List<Object> selectLastChangedSeq(long contextId, int stateIndex,
long seq) {
- if (null != AnalyzerManager.getProject()) {
- SqlConnectionManager.establishConnection(AnalyzerManager
- .getProject().getSavePath()
- + File.separator
- + AnalyzerConstants.DATABASE_NAME);
- }
String query = String.format(SELECT_LAST_CHANGED_SEQ_QUERY, contextId,
stateIndex, seq);
List<List<Object>> result = SqlConnectionManager.executeQuery(query);
public List<Object> selectNextChangedSeq(long contextId, int stateIndex,
long seq) {
- if (null != AnalyzerManager.getProject()) {
- SqlConnectionManager.establishConnection(AnalyzerManager
- .getProject().getSavePath()
- + File.separator
- + AnalyzerConstants.DATABASE_NAME);
-
- }
String query = String.format(SELECT_NEXT_CHANGED_SEQ_QUERY, contextId,
stateIndex, seq);
List<List<Object>> result = SqlConnectionManager.executeQuery(query);
*/
package org.tizen.dynamicanalyzer.ui.opengl.data;
-import java.io.File;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
-import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
-import org.tizen.dynamicanalyzer.common.AnalyzerManager;
import org.tizen.dynamicanalyzer.constant.CommonConstants;
import org.tizen.dynamicanalyzer.database.DBColumn;
import org.tizen.dynamicanalyzer.database.DBConstants;
public static final String COMPILE_STATUS = "COMPILE_STATUS"; // only shader//$NON-NLS-1$
public static final String FRAGMENT_ID = "FRAGMENT_ID"; // only program//$NON-NLS-1$
public static final String VERTEX_ID = "VERTEX_ID"; // only program//$NON-NLS-1$
- public static final String CONTEXT_NAME = "CONTEXT_NAME"; // only program//$NON-NLS-1$
+ public static final String CONTEXT_ID = "CONTEXT_ID"; // only program//$NON-NLS-1$
private static final String SELECT_QUERY = "select " + TYPE//$NON-NLS-1$
+ CommonConstants.COMMA + ID + CommonConstants.COMMA + SHADER_SRC
+ CommonConstants.COMMA + DELETE_STATUS + CommonConstants.COMMA
+ LINK_STATUS + CommonConstants.COMMA + COMPILE_STATUS
+ CommonConstants.COMMA + FRAGMENT_ID + CommonConstants.COMMA
- + VERTEX_ID + CommonConstants.COMMA + CONTEXT_NAME + " from "
+ + VERTEX_ID + CommonConstants.COMMA + CONTEXT_ID + " from "
+ TABLENAME;
public final static int TABLE_TYPE_INDEX = 0;
DBConstants.INTEGER));
addColumn(new DBColumn(VERTEX_ID, DBConstants.NOT_NULL,
DBConstants.INTEGER));
- addColumn(new DBColumn(CONTEXT_NAME, DBConstants.NOT_NULL,
- DBConstants.INTEGER));
+ addColumn(new DBColumn(CONTEXT_ID, DBConstants.NOT_NULL,
+ DBConstants.LONG));
}
public void insertData() {
List<GLStateProgramType> programList = GLDataManager.getInstance()
- .getStateDataMagerInstance().getProgramList();
+ .getStateDataMake().getProgramList();
List<List<Object>> insertObjectList = new ArrayList<List<Object>>();
for (int i = 0; i < programList.size(); i++) {
itemList.add(STATUS_NULL);
itemList.add(programType.getFragmentShaderId());
itemList.add(programType.getVertexShaderId());
- itemList.add(programType.getContextName());
+ itemList.add(programType.getContextId());
insertObjectList.add(itemList);
}
List<GLStateShaderType> shaderList = GLDataManager.getInstance()
- .getStateDataMagerInstance().getShaderList();
+ .getStateDataMake().getShaderList();
for (int i = 0; i < shaderList.size(); i++) {
GLStateShaderType shaderType = shaderList.get(i);
itemList.add(shaderType.getCompileStatus());
itemList.add(STATUS_NULL);
itemList.add(STATUS_NULL);
- itemList.add(STATUS_NULL);
+ itemList.add(shaderType.getContextId());
insertObjectList.add(itemList);
}
insertData(insertObjectList);
}
public void initProgramData() {
- if (null != AnalyzerManager.getProject()) {
- SqlConnectionManager.establishConnection(AnalyzerManager
- .getProject().getSavePath()
- + File.separator
- + AnalyzerConstants.DATABASE_NAME);
- }
List<List<Object>> result = SqlConnectionManager
.executeQuery(SELECT_QUERY);
if (null == result || result.size() == 0 || result.get(0).size() == 0) {
TABLE_FRAGMENT_ID_INDEX));
programType.setVertexShaderId((Integer) result.get(i).get(
TABLE_VERTEX_ID_INDEX));
- programType.setContextName((Integer) result.get(i).get(
+ programType.setContextId((Integer) result.get(i).get(
TABLE_CONTEXT_NAME_INDEX));
- GLDataManager.getInstance().getStateDataMagerInstance()
- .getProgramList().add(programType);
+ GLDataManager.getInstance().getStateDataMake().getProgramList()
+ .add(programType);
} else {
GLStateShaderType shaderType = new GLStateShaderType(
- (Integer) result.get(i).get(1));
- shaderType.setShaderSrc((String) result.get(i).get(2));
- shaderType.setDeleteStatus((Integer) result.get(i).get(3));
- shaderType.setCompileStatus((Integer) result.get(i).get(4));
- GLDataManager.getInstance().getStateDataMagerInstance()
- .getShaderList().add(shaderType);
+ (Long) result.get(i).get(TABLE_CONTEXT_NAME_INDEX),
+ (Integer) result.get(i).get(TABLE_ID_INDEX));
+ shaderType.setShaderSrc((String) result.get(i).get(
+ TABLE_SHADER_SRC_INDEX));
+ shaderType.setDeleteStatus((Integer) result.get(i).get(
+ TABLE_DELETE_STATUS_INDEX));
+ shaderType.setCompileStatus((Integer) result.get(i).get(
+ TABLE_LINK_STATUS_INDEX));
+ GLDataManager.getInstance().getStateDataMake().getShaderList()
+ .add(shaderType);
}
}
}
@Override
public boolean prepare(PreparedStatement prep, List<Object> rowData) {
boolean isPrepared = true;
-
int columnsize = getColumnSize();
if (columnsize != rowData.size()) {
isPrepared = false;
(Integer) (rowData.get(TABLE_FRAGMENT_ID_INDEX)));
prep.setInt(TABLE_VERTEX_ID_INDEX + 1,
(Integer) (rowData.get(TABLE_VERTEX_ID_INDEX)));
- prep.setInt(TABLE_CONTEXT_NAME_INDEX + 1,
- (Integer) (rowData.get(TABLE_CONTEXT_NAME_INDEX)));
+ prep.setLong(TABLE_CONTEXT_NAME_INDEX + 1,
+ (Long) (rowData.get(TABLE_CONTEXT_NAME_INDEX)));
} catch (SQLException e) {
e.printStackTrace();
isPrepared = false;
--- /dev/null
+/*
+ * Dynamic Analyzer
+ *
+ * Copyright (c) 2013 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Hyunjong Park <phjwithyou.park@samsung.com>
+ * Juyoung Kim <j0.kim@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Contributors:
+ * - S-Core Co., Ltd
+ *
+ */
+package org.tizen.dynamicanalyzer.ui.opengl.data;
+
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.tizen.dynamicanalyzer.constant.CommonConstants;
+import org.tizen.dynamicanalyzer.database.DBColumn;
+import org.tizen.dynamicanalyzer.database.DBConstants;
+import org.tizen.dynamicanalyzer.database.DBTable;
+import org.tizen.dynamicanalyzer.database.SqlConnectionManager;
+import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLSharingContextType;
+
+public class GLStateSharingDBTableManager extends DBTable {
+ private static final String TABLENAME = "GL_SHARING";//$NON-NLS-1$
+
+ public static final String CONTEXT_ID = "CONTEXT_ID";//$NON-NLS-1$
+ public static final String SHARING_CONTEXT_ID = "SHARING_CONTEXT_ID";//$NON-NLS-1$
+
+ public final static int TABLE_CONTEXT_ID_INDEX = 0;
+ public final static int TABLE_SHARING_CONTEXT_ID_INDEX = 1;
+
+ private static final String SELECT_QUERY = "select "//$NON-NLS-1$
+ + CONTEXT_ID + CommonConstants.COMMA
+ + SHARING_CONTEXT_ID
+ + " from " + TABLENAME;//$NON-NLS-1$
+
+ List<GLSharingContextType> savedSharingInfoList = null;
+
+ @Override
+ public String getTableName() {
+ return TABLENAME;
+ }
+
+ public GLStateSharingDBTableManager() {
+ addColumn(new DBColumn(CONTEXT_ID, DBConstants.NOT_NULL,
+ DBConstants.LONG));
+ addColumn(new DBColumn(SHARING_CONTEXT_ID, DBConstants.NOT_NULL,
+ DBConstants.LONG));
+ savedSharingInfoList = new ArrayList<GLSharingContextType>();
+ }
+
+ public void insertSharingData(List<GLSharingContextType> sharingInfoList) {
+ List<List<Object>> insertList = new ArrayList<List<Object>>();
+ for (int i = 0; i < sharingInfoList.size(); i++) {
+ GLSharingContextType insertSharingType = sharingInfoList.get(i);
+ boolean isSavedData = false;
+ for (int j = 0; j < savedSharingInfoList.size(); j++) {
+ GLSharingContextType savedSharingType = savedSharingInfoList
+ .get(j);
+ if (savedSharingType.getContextId() == insertSharingType
+ .getContextId()
+ && savedSharingType.getSharingContextId() == insertSharingType
+ .getSharingContextId()) {
+ isSavedData = true;
+ break;
+ }
+ }
+ if (!isSavedData) {
+ List<Object> objectList = new ArrayList<Object>();
+ objectList.add(insertSharingType.getContextId());
+ objectList.add(insertSharingType.getSharingContextId());
+ insertList.add(objectList);
+ savedSharingInfoList.add(insertSharingType);
+ }
+ }
+
+ insertData(insertList);
+ }
+
+ public List<GLSharingContextType> selectSharingData() {
+ List<List<Object>> result = SqlConnectionManager
+ .executeQuery(SELECT_QUERY);
+ if (null == result || result.size() == 0 || result.get(0).size() == 0) {
+ return null;
+ }
+
+ List<GLSharingContextType> sharingInfoList = new ArrayList<GLSharingContextType>();
+
+ for (int i = 0; i < result.size(); i++) {
+ long contextId = (Long) result.get(i).get(TABLE_CONTEXT_ID_INDEX);
+ long sharingContextId = (Long) result.get(i).get(
+ TABLE_SHARING_CONTEXT_ID_INDEX);
+
+ sharingInfoList.add(new GLSharingContextType(contextId,
+ sharingContextId));
+ }
+
+ return sharingInfoList;
+ }
+
+ @Override
+ public boolean prepare(PreparedStatement prep, List<Object> rowData) {
+ boolean isPrepared = true;
+ int columnsize = getColumnSize();
+ if (columnsize != rowData.size()) {
+ isPrepared = false;
+ } else {
+ try {
+ prep.setLong(TABLE_CONTEXT_ID_INDEX + 1,
+ (Long) (rowData.get(TABLE_CONTEXT_ID_INDEX)));
+ prep.setLong(TABLE_SHARING_CONTEXT_ID_INDEX + 1,
+ (Long) (rowData.get(TABLE_SHARING_CONTEXT_ID_INDEX)));
+ } catch (SQLException e) {
+ e.printStackTrace();
+ isPrepared = false;
+ }
+ }
+ return isPrepared;
+ }
+
+}
*/
package org.tizen.dynamicanalyzer.ui.opengl.data;
-import java.io.File;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
-import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
-import org.tizen.dynamicanalyzer.common.AnalyzerManager;
import org.tizen.dynamicanalyzer.constant.CommonConstants;
import org.tizen.dynamicanalyzer.database.DBColumn;
import org.tizen.dynamicanalyzer.database.DBConstants;
}
public List<GLStateTextureType> select() {
- if (null != AnalyzerManager.getProject()) {
- SqlConnectionManager.establishConnection(AnalyzerManager
- .getProject().getSavePath()
- + File.separator
- + AnalyzerConstants.DATABASE_NAME);
- }
List<List<Object>> result = SqlConnectionManager
.executeQuery(SELECT_QUERY);
if (null == result || result.size() == 0 || result.get(0).size() == 0) {
public class ContextValueType {
private static final int CONTEXT_VALUE_SIZE = GLContextNameEnum.values().length;
- private long contextID = -1;
+ public long contextID = -1;
+
+ public List<Long> sharingContextIdList = null;
+
+ public List<GLStateProgramType> programList;
+ public List<GLStateShaderType> shaderList;
+ public List<GLStateTextureType> textureList;
+
private List<String> defaultValueList = null;
private List<String> preValueList = null;
private List<String> currentValueList = null;
vboSizeMap = new LinkedHashMap<String, String>();
vboDataMap = new LinkedHashMap<String, String>();
vboUsageMap = new LinkedHashMap<String, String>();
+
+ programList = new ArrayList<GLStateProgramType>();
+ shaderList = new ArrayList<GLStateShaderType>();
+ textureList = new ArrayList<GLStateTextureType>();
+
+ sharingContextIdList = new ArrayList<Long>();
}
public void setVertexAttribs(int size) {
}
return list;
}
+
+ public void addSharingContextID(
+ LinkedHashMap<Long, ContextValueType> contextMap,
+ long sharingContextId) {
+
+ sharingContextIdList.add(sharingContextId);
+ ContextValueType sharingContextValueType = contextMap
+ .get(sharingContextId);
+
+ // update sharingContextIdList of current contextValueType from
+ // sharingContextID of all shared contextValueType
+ for (int i = 0; i < sharingContextValueType.sharingContextIdList.size(); i++) {
+ long savedSharingContextId = sharingContextValueType.sharingContextIdList
+ .get(i);
+ if (savedSharingContextId == contextID
+ || savedSharingContextId == sharingContextId) {
+ return;
+ }
+ for (int j = 0; j < sharingContextIdList.size(); j++) {
+ long ContextId = sharingContextIdList.get(j);
+ if (savedSharingContextId == ContextId) {
+ return;
+ }
+ }
+
+ sharingContextIdList.add(savedSharingContextId);
+ }
+
+ sharingContextValueType.addSharingContextID(contextMap, contextID);
+
+ // update sharingContextIdList of all shared contextValueType from
+ // current sharingContextId
+ for (int i = 0; i < sharingContextValueType.sharingContextIdList.size(); i++) {
+ long savedSharingContextId = sharingContextValueType.sharingContextIdList
+ .get(i);
+ if (savedSharingContextId == contextID
+ || savedSharingContextId == sharingContextId) {
+ return;
+ }
+ ContextValueType savedSharingContextValueType = contextMap
+ .get(savedSharingContextId);
+
+ savedSharingContextValueType.addSharingContextID(contextMap,
+ contextID);
+ }
+ }
}
private int endFrameIndex = 0;
private int frameCount = 0;
private int errno = 0;
+ private int pid = 0;
public int getTime() {
return time;
public void setEndFrameIndex(int endFrameIndex) {
this.endFrameIndex = endFrameIndex;
}
+
+ public int getPid() {
+ return pid;
+ }
+
+ public void setPid(int pid) {
+ this.pid = pid;
+ }
}
public static final String API_GL_ENABLE = "glEnable";//$NON-NLS-1$
public static final String API_EGL_SWAPBUFFERS = "eglSwapBuffers";//$NON-NLS-1$
public static final String API_SGL_SWAPBUFFERS = "_SglSwapBuffers";//$NON-NLS-1$
+
+ //EGL
+ public static final String API_EGL_CREATE_CONTEXT = "_SglCreateContext";//$NON-NLS-1$
+
}
defaultContextHashMap.put("BLEND_SRC_RGB", "1"); //$NON-NLS-1$
defaultContextHashMap.put("BLEND_SRC_ALPHA", "1"); //$NON-NLS-1$
- defaultContextHashMap.put("CULLING_ENABLED", CommonConstants.DISABLE); //$NON-NLS-1$
+ defaultContextHashMap.put("CULLING_ENABLED", CommonConstants.ENABLE); //$NON-NLS-1$
defaultContextHashMap.put("CULLING_ORIENTATION", "2305"); //$NON-NLS-1$
defaultContextHashMap.put("CULLING_MODE", "1029"); //$NON-NLS-1$
- defaultContextHashMap.put("DEPTH_ENABLED", CommonConstants.DISABLE); //$NON-NLS-1$
+ defaultContextHashMap.put("DEPTH_ENABLED", CommonConstants.ENABLE); //$NON-NLS-1$
defaultContextHashMap.put("DEPTH_FUNC", "513"); //$NON-NLS-1$
defaultContextHashMap.put("DEPTH_RANGE_N", "0"); //$NON-NLS-1$
- defaultContextHashMap.put("DEPTH_RANGE_F", "1"); //$NON-NLS-1$
+ defaultContextHashMap.put("DEPTH_RANGE_F", "0"); //$NON-NLS-1$
- defaultContextHashMap.put("DITHER_ENABLED", CommonConstants.DISABLE); //$NON-NLS-1$
+ defaultContextHashMap.put("DITHER_ENABLED", CommonConstants.ENABLE); //$NON-NLS-1$
defaultContextHashMap.put("FRAME_BUFFER_BINDING", "0"); //$NON-NLS-1$
--- /dev/null
+/*
+ * Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Hyunjong Park <phjwithyou.park@samsung.com>
+ * Sanghyun Lee <sanghyunnim.lee@samsung.com>
+ * Juyoung Kim <j0.kim@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Contributors:
+ * - S-Core Co., Ltd
+ *
+ */
+
+package org.tizen.dynamicanalyzer.ui.opengl.data.type;
+
+public class GLSharingContextType {
+ private long contextId = -1;
+ private long sharingContextId = -1;
+
+ public GLSharingContextType(long contextId, long sharingContextId) {
+ this.contextId = contextId;
+ this.sharingContextId = sharingContextId;
+ }
+
+ public long getContextId() {
+ return contextId;
+ }
+
+ public void setContextId(long contextId) {
+ this.contextId = contextId;
+ }
+
+ public long getSharingContextId() {
+ return sharingContextId;
+ }
+
+ public void setSharingContextId(long sharingContextId) {
+ this.sharingContextId = sharingContextId;
+ }
+
+}
\ No newline at end of file
private int deleteStatus = -1;
private int fragmentShaderId = -1;
private int vertexShaderId = -1;
- private int contextName = -1;
+ private long contextId = -1;
public GLStateProgramType(int id) {
setId(id);
this.vertexShaderId = vertexShaderId;
}
- public int getContextName() {
- return contextName;
+ public long getContextId() {
+ return contextId;
}
- public void setContextName(int contextName) {
- this.contextName = contextName;
+ public void setContextId(long contextId) {
+ this.contextId = contextId;
}
}
\ No newline at end of file
public static int GL_FRAGMENT_SHADER = 1;
public static int GL_VERTEX_SHADER = 2;
+ private long contextId = -1;
private int id = -1;
private int shaderType = -1;
private String shaderSrc = CommonConstants.EMPTY;
private int deleteStatus = -1;
private int compileStatus = -1;
- public GLStateShaderType(int id) {
+ public GLStateShaderType(long contextId, int id) {
+ setContextId(contextId);
setId(id);
}
this.compileStatus = compileStatus;
}
+ public long getContextId() {
+ return contextId;
+ }
+
+ public void setContextId(long contextId) {
+ this.contextId = contextId;
+ }
+
}
\ No newline at end of file
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
+import org.tizen.dynamicanalyzer.common.DASelectionData;
import org.tizen.dynamicanalyzer.constant.CommonConstants;
import org.tizen.dynamicanalyzer.nl.GLPageLabels;
import org.tizen.dynamicanalyzer.resources.ColorResources;
+import org.tizen.dynamicanalyzer.swap.model.data.LogData;
import org.tizen.dynamicanalyzer.ui.opengl.GLPage;
import org.tizen.dynamicanalyzer.ui.opengl.data.GLDataManager;
import org.tizen.dynamicanalyzer.ui.opengl.data.type.FrameCountInfoType;
import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLSelectionData;
+import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
import org.tizen.dynamicanalyzer.widgets.da.view.DAViewComposite;
import org.tizen.dynamicanalyzer.widgets.da.view.DAViewData;
GLSelectionData data = (GLSelectionData) vdata;
String id = data.getViewID();
if (id.equals(GLPage.chartViewID)) {
+ int startFrameIndex = data.getFrameTimeIndex();
int endFrameIndex = data.getSecondFrameIndex();
- int frameIndex = data.getFrameTimeIndex();
- if (GLDataManager.getInstance().isShowFrameRateChart()) {
+
+ if (startFrameIndex == endFrameIndex) {
title = GLPageLabels.GL_API_LIST_VIEW_TITLE
- + CommonConstants.OPEN_BRACKET + frameIndex
- + CommonConstants.DASH + endFrameIndex
+ + CommonConstants.OPEN_BRACKET + startFrameIndex
+ GLPageLabels.GL_FRAME
+ CommonConstants.CLOSE_BRACKET;
-
} else {
title = GLPageLabels.GL_API_LIST_VIEW_TITLE
- + CommonConstants.OPEN_BRACKET + frameIndex
+ + CommonConstants.OPEN_BRACKET + startFrameIndex
+ + CommonConstants.DASH + endFrameIndex
+ GLPageLabels.GL_FRAME
+ CommonConstants.CLOSE_BRACKET;
}
setTitle(title);
- glAPIListTable.updateTableFromChart(frameIndex, endFrameIndex);
+ glAPIListTable.updateTableFromChart(startFrameIndex,
+ endFrameIndex);
} else if (id.equals(GLPage.contextHistoryID)) {
if (GLDataManager.getInstance().isShowFrameRateChart()) {
frameRateIndex = GLDataManager.getInstance()
.getStartFrameRateTime();
}
-
- FrameCountInfoType selectionFrameCountInfo = GLDataManager
- .getInstance().getFrameRateStartIndex(
- frameRateIndex, frameRateIndex);
- if (null == selectionFrameCountInfo) {
- return;
- }
- int startFrameIndex = selectionFrameCountInfo
- .getStartFrameIndex();
-
- int endFrameIdnex = selectionFrameCountInfo
- .getEndFrameIndex();
- title = GLPageLabels.GL_API_LIST_VIEW_TITLE
- + CommonConstants.OPEN_BRACKET + startFrameIndex
- + CommonConstants.DASH + endFrameIdnex
- + GLPageLabels.GL_FRAME
- + CommonConstants.CLOSE_BRACKET;
-
- setTitle(title);
- glAPIListTable.updateTableFromContext(startFrameIndex,
- endFrameIdnex, data.getSeq());
+ setSelectedAPI(frameRateIndex, data.getSeq());
} else {
int frameIndex = data.getFrameTimeIndex();
title = GLPageLabels.GL_API_LIST_VIEW_TITLE
frameIndex, data.getSeq());
}
}
+ } else if (vdata instanceof DASelectionData) {
+ DASelectionData selData = (DASelectionData) vdata;
+ Object obData = selData.getData();
+ LogData ldata = (LogData) obData;
+ long dataTime = ldata.getTime();
+ double selectionTime = dataTime / TimelineConstants.MEGA_DOUBLE;
+ if (selectionTime <= 1) {
+ selectionTime = GLDataManager.getInstance()
+ .getStartFrameRateTime();
+ }
+ setSelectedAPI((int) selectionTime,
+ Integer.toString(ldata.getSeq()));
}
+ }
+
+ private void setSelectedAPI(int selectionTime, String seq) {
+ FrameCountInfoType selectionFrameCountInfo = GLDataManager
+ .getInstance().getFrameRateStartIndex(selectionTime,
+ selectionTime);
+ if (null == selectionFrameCountInfo) {
+ return;
+ }
+ int startFrameIndex = selectionFrameCountInfo.getStartFrameIndex();
+
+ int endFrameIdnex = selectionFrameCountInfo.getEndFrameIndex();
+ title = GLPageLabels.GL_API_LIST_VIEW_TITLE
+ + CommonConstants.OPEN_BRACKET + startFrameIndex
+ + CommonConstants.DASH + endFrameIdnex + GLPageLabels.GL_FRAME
+ + CommonConstants.CLOSE_BRACKET;
+ setTitle(title);
+ glAPIListTable.updateTableFromContext(startFrameIndex, endFrameIdnex,
+ seq);
}
@Override
for (int i = 0; i < size; i++) {
if (i == GLContextNameEnum.RID.ordinal()
|| i == GLContextNameEnum.SEQ.ordinal()
- || i == GLContextNameEnum.CONTEXT_ID.ordinal()) {
+ || i == GLContextNameEnum.CONTEXT_ID.ordinal()
+ || i == GLContextNameEnum.TEXTURE_ACTIVE.ordinal()) {
continue;
}
}
if (isInteger(currentValue)) {
- if (i != GLContextNameEnum.TEXTURE_ACTIVE.ordinal()) {
- String glConstantDefine = GLConstantDefine
- .getConstantString(currentValue);
- if (null != glConstantDefine) {
- defaultValue = glConstantDefine;
- currentValue = glConstantDefine;
- }
+ String glConstantDefine = GLConstantDefine
+ .getConstantString(currentValue);
+ if (null != glConstantDefine) {
+ defaultValue = glConstantDefine;
+ currentValue = glConstantDefine;
}
}
text.add(stateName);
List<TableInput> input = new ArrayList<TableInput>();
+ GLDataManager.getInstance().updateSharingContextList();
+
List<GLStateProgramType> programList = GLDataManager.getInstance()
- .getStateDataMagerInstance().getProgramList();
+ .getStateDataMake().getProgramList();
int size = programList.size();
Long.parseLong(programId));
String contextName = GLPageLabels.GL_CONTEXT
- + programList.get(i).getContextName();
+ + programList.get(i).getContextId();
String programID = GLPageLabels.GL_PROGRAM + programId;
String vertexShaderID = GLPageLabels.GL_SHADER
+ programList.get(i).getVertexShaderId();
tableInput.setData(tableData);
input.add(tableInput);
- int contextID = programList.get(i).getContextName();
+ long contextID = programList.get(i).getContextId();
if (GLDataManager.getInstance().getSelectedContextID() == contextID) {
tableInput.setInRange(true);
}
+ if (GLDataManager.getInstance().isSharingData(contextID)) {
+ tableInput.setInRange(true);
+ }
}
return input;
List<TableInput> input = new ArrayList<TableInput>();
+ GLDataManager.getInstance().updateSharingContextList();
+
List<GLStateTextureType> textureList = GLDataManager.getInstance()
.getStateTextureDBTableManage().select();
+ if (null == textureList) {
+ return null;
+ }
int size = textureList.size();
for (int i = 0; i < size; i++) {
if (GLDataManager.getInstance().getSelectedContextID() == contextID) {
tableInput.setInRange(true);
}
-
+ if (GLDataManager.getInstance().isSharingData(contextID)) {
+ tableInput.setInRange(true);
+ }
}
return input;
}