Opengl : implement the functionality of multi context sharing, and get event from... 36/21636/1
authorHyunjong,park <phjwithyou.park@samsung.com>
Mon, 26 May 2014 00:29:06 +0000 (09:29 +0900)
committerHyunjong,park <phjwithyou.park@samsung.com>
Mon, 26 May 2014 00:32:01 +0000 (09:32 +0900)
Signed-off-by: Hyunjong,park <phjwithyou.park@samsung.com>
Change-Id: I7e69937a46654d91b85db85c4347046a7342474e

24 files changed:
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/GLES20LogData.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/GLDetailsView.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/chart/GLChartView.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLAPIDBTableManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLDataManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLFrameRateDBTableManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLFrameTimeDBTableManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLStateDBTableManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLStateDataMaker.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLStateHistoryDBTableManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLStateProgramDBTableManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLStateSharingDBTableManager.java [new file with mode: 0644]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLStateTextureDBTableManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/type/ContextValueType.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/type/FrameCountInfoType.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/type/GLAPINameDefine.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/type/GLContextDefaultValueHashMap.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/type/GLSharingContextType.java [new file with mode: 0644]
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/type/GLStateProgramType.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/type/GLStateShaderType.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/api/GLAPIListView.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLContextTable.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLProgramTable.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLTextureTable.java

index 68accde..26fff64 100644 (file)
@@ -68,6 +68,7 @@ public class GLES20LogData extends ProbeCommonData {
                prep.setInt(index++, apiType);
                prep.setLong(index++, elapsedTime);
                prep.setString(index++, contextValue);
+
        }
 
        @Override
@@ -79,6 +80,3 @@ public class GLES20LogData extends ProbeCommonData {
                contextValue = rs.getString(index++);
        }
 }
-
-
-
index 6bf2b7b..8447b47 100644 (file)
@@ -53,6 +53,7 @@ import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLFrameType;
 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;
 
@@ -110,7 +111,6 @@ public class GLDetailsView extends DAViewComposite {
 
        @Override
        public void updateView(DAViewData vdata) {
-
                if (vdata instanceof GLSelectionData) {
                        GLSelectionData data = (GLSelectionData) vdata;
                        String id = vdata.getViewID();
@@ -125,7 +125,6 @@ public class GLDetailsView extends DAViewComposite {
                                updateProgramTableInfo(data);
                        }
                }
-
        }
 
        @Override
@@ -203,6 +202,11 @@ public class GLDetailsView extends DAViewComposite {
                        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)
@@ -212,13 +216,17 @@ public class GLDetailsView extends DAViewComposite {
                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());
                        }
                }
 
index 8866b77..f877f27 100644 (file)
@@ -31,17 +31,20 @@ import org.eclipse.swt.SWT;
 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;
@@ -274,6 +277,27 @@ public class GLChartView extends DAViewComposite {
                                        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();
+                               }
+                       }
                }
        }
 
index 6f831d9..e4e5581 100644 (file)
  */
 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;
@@ -158,12 +155,6 @@ public class GLAPIDBTableManager extends DBTable {
        }
 
        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);
@@ -179,12 +170,6 @@ public class GLAPIDBTableManager extends DBTable {
 
        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);
index 2c2dd9e..70a2dce 100644 (file)
@@ -40,14 +40,17 @@ import org.tizen.dynamicanalyzer.swap.model.data.LogData;
 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;
@@ -62,9 +65,12 @@ public class GLDataManager extends PageDataManager {
        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();
@@ -77,7 +83,7 @@ public class GLDataManager extends PageDataManager {
                currentFrameTimeIndex = 1;
                glFrameData = new GLFrameType(currentFrameTimeIndex);
                frameInfoList = new ArrayList<FrameCountInfoType>();
-               GLStateDataMagerInstance = new GLStateDataMaker();
+               GLStateDataMaker = new GLStateDataMaker();
                apiDBTable = new GLAPIDBTableManager();
                addDBTable(apiDBTable);
                frameRateDBTable = new GLFrameRateDBTableManager();
@@ -92,13 +98,16 @@ public class GLDataManager extends PageDataManager {
                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() {
@@ -155,13 +164,24 @@ public class GLDataManager extends PageDataManager {
                        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) {
@@ -175,6 +195,7 @@ public class GLDataManager extends PageDataManager {
                frameRateData.setTime(time);
                frameRateData.setStartFrameIndex(currentFrameTimeIndex);
                frameRateData.setErrno(glFrameData.hasError());
+               frameRateData.setPid(logData.getPid());
                frameRateData.addFrameCount();
                frameInfoList.add(frameRateData);
        }
@@ -189,6 +210,7 @@ public class GLDataManager extends PageDataManager {
                                framRateChartData.add(data.getFrameCount() - 1);
                                framRateChartData.add(data.getStartFrameIndex());
                                framRateChartData.add(data.hasErrno());
+                               framRateChartData.add(data.getPid());
                                insetData.add(framRateChartData);
                                removeframeInfoList.add(data);
 
@@ -210,6 +232,7 @@ public class GLDataManager extends PageDataManager {
                        framRateChartData.add(data.getFrameCount());
                        framRateChartData.add(data.getStartFrameIndex());
                        framRateChartData.add(data.hasErrno());
+                       framRateChartData.add(data.getPid());
                        insetData.add(framRateChartData);
                        removeframeInfoList.add(data);
                }
@@ -231,6 +254,7 @@ public class GLDataManager extends PageDataManager {
                framTimeChartData.add(glFrameData.hasError());
                framTimeChartData.add(glFrameData.getStartSeq());
                framTimeChartData.add(glFrameData.getEndSeq());
+               framTimeChartData.add(logData.getPid());
                return framTimeChartData;
        }
 
@@ -279,8 +303,8 @@ public class GLDataManager extends PageDataManager {
                return apiDBTable;
        }
 
-       public GLStateDataMaker getStateDataMagerInstance() {
-               return GLStateDataMagerInstance;
+       public GLStateDataMaker getStateDataMake() {
+               return GLStateDataMaker;
        }
 
        public GLFrameRateDBTableManager getFrameRateDBTableManager() {
@@ -307,6 +331,10 @@ public class GLDataManager extends PageDataManager {
                return stateTextureDBTable;
        }
 
+       public GLStateSharingDBTableManager getStateSharingDBTableManage() {
+               return stateSharingDBTable;
+       }
+
        public boolean isShowFrameRateChart() {
                return isShowFrameRateChart;
        }
@@ -322,4 +350,25 @@ public class GLDataManager extends PageDataManager {
        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;
+       }
 }
index 3fc5d1f..aa4e194 100644 (file)
  */
 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$
@@ -46,21 +44,32 @@ public class GLFrameRateDBTableManager extends DBTable {
        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;
@@ -75,6 +84,7 @@ public class GLFrameRateDBTableManager extends DBTable {
                                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) {
@@ -82,12 +92,6 @@ public class GLFrameRateDBTableManager extends DBTable {
        }
 
        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);
@@ -115,20 +119,13 @@ public class GLFrameRateDBTableManager extends DBTable {
        }
 
        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);
        }
 
@@ -149,6 +146,8 @@ public class GLFrameRateDBTableManager extends DBTable {
                                                (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;
index b33b21d..476f42e 100644 (file)
  */
 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$
@@ -47,6 +45,7 @@ public class GLFrameTimeDBTableManager extends DBTable {
        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;
@@ -54,16 +53,14 @@ public class GLFrameTimeDBTableManager extends DBTable {
        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;
@@ -79,6 +76,17 @@ public class GLFrameTimeDBTableManager extends DBTable {
                        + 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;
@@ -96,17 +104,12 @@ public class GLFrameTimeDBTableManager extends DBTable {
                                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 {
@@ -115,21 +118,20 @@ public class GLFrameTimeDBTableManager extends DBTable {
        }
 
        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;
@@ -147,6 +149,8 @@ public class GLFrameTimeDBTableManager extends DBTable {
                                                (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();
index ee68581..9b25366 100644 (file)
  */
 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;
@@ -137,12 +134,6 @@ public class GLStateDBTableManager extends DBTable {
        }
 
        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);
index b986985..1f3dbd2 100644 (file)
 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;
@@ -37,20 +41,20 @@ import org.tizen.dynamicanalyzer.ui.opengl.data.type.ContextValueType;
 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() {
@@ -58,9 +62,6 @@ public class GLStateDataMaker {
        }
 
        public void init() {
-               programList = new ArrayList<GLStateProgramType>();
-               shaderList = new ArrayList<GLStateShaderType>();
-               textureList = new ArrayList<GLStateTextureType>();
                contextHashMap = new LinkedHashMap<Long, ContextValueType>();
        }
 
@@ -77,10 +78,6 @@ public class GLStateDataMaker {
                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);
 
@@ -92,13 +89,21 @@ public class GLStateDataMaker {
                }
 
                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);
@@ -609,279 +614,338 @@ public class GLStateDataMaker {
                                                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;
                                }
                        }
                }
@@ -935,10 +999,32 @@ public class GLStateDataMaker {
        }
 
        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;
        }
 
index 30a2c98..83ba1b5 100644 (file)
  */
 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;
@@ -107,12 +104,6 @@ public class GLStateHistoryDBTableManager extends DBTable {
 
        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);
@@ -124,13 +115,6 @@ public class GLStateHistoryDBTableManager extends DBTable {
 
        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);
index eca5328..f55759b 100644 (file)
  */
 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;
@@ -56,14 +53,14 @@ public class GLStateProgramDBTableManager extends DBTable {
        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;
@@ -96,13 +93,13 @@ public class GLStateProgramDBTableManager extends DBTable {
                                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++) {
@@ -116,12 +113,12 @@ public class GLStateProgramDBTableManager extends DBTable {
                        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);
@@ -134,19 +131,13 @@ public class GLStateProgramDBTableManager extends DBTable {
                        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) {
@@ -165,18 +156,22 @@ public class GLStateProgramDBTableManager extends DBTable {
                                                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);
                        }
                }
        }
@@ -184,7 +179,6 @@ public class GLStateProgramDBTableManager extends DBTable {
        @Override
        public boolean prepare(PreparedStatement prep, List<Object> rowData) {
                boolean isPrepared = true;
-
                int columnsize = getColumnSize();
                if (columnsize != rowData.size()) {
                        isPrepared = false;
@@ -206,8 +200,8 @@ public class GLStateProgramDBTableManager extends DBTable {
                                                (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;
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLStateSharingDBTableManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLStateSharingDBTableManager.java
new file mode 100644 (file)
index 0000000..c0ffdd6
--- /dev/null
@@ -0,0 +1,138 @@
+/*
+ *  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;
+       }
+
+}
index 8ff5dd2..b7206b5 100644 (file)
  */
 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;
@@ -114,12 +111,6 @@ public class GLStateTextureDBTableManager extends DBTable {
        }
 
        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) {
index e8c4d61..89138ef 100644 (file)
@@ -37,7 +37,14 @@ import org.tizen.dynamicanalyzer.ui.opengl.data.GLDataManager;
 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;
@@ -83,6 +90,12 @@ public class ContextValueType {
                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) {
@@ -194,4 +207,50 @@ public class ContextValueType {
                }
                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);
+               }
+       }
 }
index 0dcc0d1..d707613 100644 (file)
@@ -33,6 +33,7 @@ public class FrameCountInfoType {
        private int endFrameIndex = 0;
        private int frameCount = 0;
        private int errno = 0;
+       private int pid = 0;
 
        public int getTime() {
                return time;
@@ -77,4 +78,12 @@ public class FrameCountInfoType {
        public void setEndFrameIndex(int endFrameIndex) {
                this.endFrameIndex = endFrameIndex;
        }
+
+       public int getPid() {
+               return pid;
+       }
+
+       public void setPid(int pid) {
+               this.pid = pid;
+       }
 }
index 05794ac..1442b25 100644 (file)
@@ -125,4 +125,8 @@ public class GLAPINameDefine {
        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$
+       
 }
index c6457d7..2828828 100644 (file)
@@ -53,16 +53,16 @@ public class GLContextDefaultValueHashMap {
                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$
 
diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/type/GLSharingContextType.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/type/GLSharingContextType.java
new file mode 100644 (file)
index 0000000..f0366bc
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ *  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
index 15f3236..6143daf 100644 (file)
@@ -35,7 +35,7 @@ public class GLStateProgramType {
        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);
@@ -81,12 +81,12 @@ public class GLStateProgramType {
                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
index ffb7dff..1c9de00 100644 (file)
@@ -32,13 +32,15 @@ public class GLStateShaderType {
        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);
        }
 
@@ -90,4 +92,12 @@ public class GLStateShaderType {
                this.compileStatus = compileStatus;
        }
 
+       public long getContextId() {
+               return contextId;
+       }
+
+       public void setContextId(long contextId) {
+               this.contextId = contextId;
+       }
+
 }
\ No newline at end of file
index e8eaa42..e333319 100644 (file)
@@ -32,13 +32,16 @@ import org.eclipse.swt.layout.FillLayout;
 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;
 
@@ -100,23 +103,24 @@ public class GLAPIListView extends DAViewComposite {
                        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()) {
 
@@ -125,27 +129,7 @@ public class GLAPIListView extends DAViewComposite {
                                                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
@@ -157,8 +141,39 @@ public class GLAPIListView extends DAViewComposite {
                                                        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
index 887dfd7..7c94eae 100644 (file)
@@ -143,7 +143,8 @@ public class GLContextTable extends DATableComposite {
                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;
                        }
 
@@ -161,13 +162,11 @@ public class GLContextTable extends DATableComposite {
                        }
 
                        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);
index 25d29c5..ad6b0fa 100644 (file)
@@ -72,8 +72,10 @@ public class GLProgramTable extends DATableComposite {
 
                List<TableInput> input = new ArrayList<TableInput>();
 
+               GLDataManager.getInstance().updateSharingContextList();
+
                List<GLStateProgramType> programList = GLDataManager.getInstance()
-                               .getStateDataMagerInstance().getProgramList();
+                               .getStateDataMake().getProgramList();
 
                int size = programList.size();
 
@@ -84,7 +86,7 @@ public class GLProgramTable extends DATableComposite {
                                        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();
@@ -101,11 +103,14 @@ public class GLProgramTable extends DATableComposite {
                        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;
index 92c0f77..a6e7294 100644 (file)
@@ -66,8 +66,13 @@ public class GLTextureTable extends DATableComposite {
 
                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++) {
@@ -103,7 +108,9 @@ public class GLTextureTable extends DATableComposite {
                        if (GLDataManager.getInstance().getSelectedContextID() == contextID) {
                                tableInput.setInRange(true);
                        }
-
+                       if (GLDataManager.getInstance().isSharingData(contextID)) {
+                               tableInput.setInRange(true);
+                       }
                }
                return input;
        }