0032460: Coding Rules - eliminate CLang warning -Wunused-but-set-variable
[occt.git] / samples / webgl / WasmOcctPixMap.cpp
CommitLineData
5de4b704 1// Copyright (c) 2021 OPEN CASCADE SAS
2//
3// This file is part of the examples of the Open CASCADE Technology software library.
4//
5// Permission is hereby granted, free of charge, to any person obtaining a copy
6// of this software and associated documentation files (the "Software"), to deal
7// in the Software without restriction, including without limitation the rights
8// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9// copies of the Software, and to permit persons to whom the Software is
10// furnished to do so, subject to the following conditions:
11//
12// The above copyright notice and this permission notice shall be included in all
13// copies or substantial portions of the Software.
14//
15// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
21
22#include "WasmOcctPixMap.h"
23
24#include <Message.hxx>
25
26#include <emscripten.h>
27
28// ================================================================
29// Function : WasmOcctPixMap
30// Purpose :
31// ================================================================
32WasmOcctPixMap::WasmOcctPixMap()
33: myRawDataPtr (nullptr) {}
34
35// ================================================================
36// Function : ~WasmOcctPixMap
37// Purpose :
38// ================================================================
39WasmOcctPixMap::~WasmOcctPixMap()
40{
41 Clear();
42}
43
44// ================================================================
45// Function : Clear
46// Purpose :
47// ================================================================
48void WasmOcctPixMap::Clear()
49{
50 if (myRawDataPtr != nullptr) { free (myRawDataPtr); }
51 myRawDataPtr = nullptr;
52 Image_PixMap::Clear();
53}
54
55// ================================================================
56// Function : Init
57// Purpose :
58// ================================================================
59bool WasmOcctPixMap::Init (const char* theFilePath)
60{
61 Clear();
62 int aSizeX = 0, aSizeY = 0;
63 char* anImgData = emscripten_get_preloaded_image_data (theFilePath, &aSizeX, &aSizeY);
64 if (anImgData == nullptr)
65 {
66 Message::DefaultMessenger()->Send (TCollection_AsciiString("Error: invalid image ") + theFilePath, Message_Fail);
67 return false;
68 }
69
70 Message::DefaultMessenger()->Send (TCollection_AsciiString("Loaded image ") + theFilePath + "@" + aSizeX + "x" + aSizeY, Message_Info);
71 InitWrapper (Image_Format_RGBA, (Standard_Byte* )anImgData, aSizeX, aSizeY);
72 SetTopDown (true);
73 myRawDataPtr = anImgData;
74 return true;
75}