SCV  4.2.1
Simple Components for Visual
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
SCV

A estrutura de arquivos do SCV é apresentada nas seguintes figuras.

diretorios.png
  • SCV: contém todo o código fonte do SCV. Quando compilado, gera as libs (scv-debug e scv-release) que são necessárias para compilação dos demais projetos (os designers de interface e os exemplos).
  • Include: contém os arquivos de cabeçalho do SCV.
  • Lib: contém as libs usadas para compilar o SCV (glew, freeglut e openGL) e as libs geradas a partir da compilação do SCV.
  • InterfaceDesigner: contém o código do SCVDesigner, uma aplicação desenvolvida para criação de interfaces com componentes redimensionáveis. Para maiores detalhes da aplicação, consultar o manual.
  • FreeFormInterfaceDesigner: semelhante ao InterfaceDesigner, é um aplicação que permite a construção de interfaces gráficas do SVC que não tem o recurso de redimensionamento de componentes.
  • Documentation: contém páginas HTML geradas pelo Doxygen com a documentação da API, e também manuais de uso da API e das ferramentas de geração de interfaces.
  • UserProject: pasta que contém um projeto para compilação de aplicativos desenvolvidos com a API
  • SCVExamples: contém vários exemplos de aplicativos desenvolvidos com a API SCV que fazem o uso de widgets.

Linux - Makefile

Para compilar a biblioteca no Linux, é necessário instalar os pacotes de desenvolvimento da Freeglut e GLEW, além das bibliotecas do OpenGL (do Projeto Mesa ou de alguma implementação de proprietária). Após, basta executar o make no diretório raiz do projeto. Para realizar uma build otimizada use 'make release'. Os binários serão colocados no diretório bin/.

A funcionalidade do FileOpen não está contida na versão do SCV para Code::Blocks, visto que utilizava funções nativas apenas suportadas pelo Visual Studio 2010.

Os 4 módulos principais estão divididos em diretórios separados. O makefile do diretório raiz automaticamente faz build de todos os módulos. Regras específicas de cada módulo estão no arquivo rules.mk presente em cada diretório, e os arquivos Makefile e common-rules.mk contém o framework geral de compilação.

O diretório userProject tem makefile próprio e é compilado independentemente do resto do código. Ele pode ser usado como modelo para seus projetos que usam o SCV.

Windows - Microsoft Visual Studio (até versão 4.2.0)

A solution scv.sln engloba 4 projetos Microsoft Visual Studio 10, que compilam os 4 componentes executáveis do projeto.

sln.png

Para compilar cada projeto deve-se definí-lo como projeto de inicialização ("Startup project").

startupproject.png

Para compilar uma aplicação com o SCV deve-se adicionar 5 bibliotecas: Freeglut.lib, Glew32.lib, openGL.lib e scv-debug.lib (ou scv-release.lib). Na interface do Visual Studio 2010, isso pode ser feito nos campos properties/VC++ Directories e properties/Linker/Input, como mostrado nas seguintes figuras. Esta configuração leva em consideração a organização de pastas do SCV. Isso pode ser modificado livremente pelo programador.

include.png


lib.png

Para rodar os demos ou programas desenvolvidos no VS2010 em máquinas que não tenham o VS, deve-se instalar também o Microsoft Visual C++ 2010 Redistributable. Sem ele, vem um aviso que faltam dlls para execução, mais especificamente as MSVCP100.dll e MSVCR100.dll.

O instalador da runtime pode ser baixado da Microsoft através deste link: http://www.microsoft.com/downloads/en/confirmation.aspx?familyid=A7B7A05E-6DE6-4D3A-A423-37BF0912DB84&displaylang=en

Outra opção é simplesmente copiar essas duas DLLs do seu computador com VS para a pasta do exe. (Ficam em C:\Windows\System32\msvcp100.dll e C:\Windows\System32\msvcr100.dll)

Também existe um projeto standalone "userProject" para compilação de projetos desenvolvidos pelo usuario, com o uso das ferramentas de geração automática de código (InterfaceDesigner e FreeFormInterfaceDesigner)

sln2.png

Windows/Linux - Code::Blocks

O Workspace scv.workspace engloba 5 projetos do CodeBlocks: o projeto SCV compila as bibliotecas do SCV e os outros projetos compilam os executáveis. A funcionalidade do FileOpen não está contida na versão do SCV para Code::Blocks, visto que utilizava funções nativas apenas suportadas pelo Visual Studio 2010.

Workspace.png

Para compilar cada projeto, deve-se defini-lo como projeto ativo ("Activate Project").

ActivateProject.png

Para compilar uma aplicação com o SCV em Linux, deve-se instalar os pacotes de desenvolvimento da Freeglut e GLEW, além das bibliotecas do OpenGL (do Projeto Mesa ou de alguma implementação de proprietária). Feito isso, basta adicionar as opções -lGL -lGLU -lglut -lGLEW e a biblioteca libscv-debug32.a (ou libscv-release32.a). Já para compilar uma aplicação com o SCV no Windows, deve-se adicionar as bibliotecas: libfreeglut.a, libfreeglut_static.a, libglew32.a, libglu32.a, libopengl32.a e libscv-debug32.a (ou libscv-release32.a). Na interface do CodeBlocks, isso pode ser feito nas propriedades do projeto, em Build targets e na aba "Linker settings".

LinkerSettings.png

Para rodar os demos ou programas desenvolvidos no CodeBlocks é necessário ter o CodeBlocks instalado. Existe um projeto standalone ("userProject") para compilação de projetos desenvolvidos pelo usuário, com o uso das ferramentos geradoras de código, InterfaceDesigner e FreeFormInterfaceDesigner.

Trabalhos Publicados

PAHINS, C. A. L. Ambiente para construção de Interfaces gráficas de usuário com o SCV. Trabalho de Graduação em Ciência da Computação, UFSM, 2011.

PAHINS, C. A. L.; POZZER, C. T. SCV - Simple Components for Visual. Jornada Acadêmica Integrada da Universidade Federal de Santa Maria, Santa Maria, RS, 2011.

PAHINS, C. A. L.; LIMBERGER, F. A.; HENZ, B.; SPERONI, E. A.; GOTTIN, V. M.; POZZER, C. T. Uma API Livre para Composição de GUI em Aplicativos Gráficos. Fórum Internacional de Software Livre 2010 - Workshop de Software Livre, Porto Alegre, RS, 2010.

PAHINS, C. A. L.; LIMBERGER, F. A.; POZZER, C. T. Uma Abordagem Gráfica Utilizando o SCV. Jornada Acadêmica Integrada da Universidade Federal de Santa Maria, Santa Maria, RS, 2010.

PAHINS, C. A. L.; LIMBERGER, F. A.; HENZ, B.; POZZER, C. T. SCV: uma ferramenta para programação de aplicativos de interfaces gráficas. Congresso Regional de Iniciação Científica e Tecnológica em Engenharia, Rio Grande, RS, BR, 2010.

LIMBERGER, F. A.; PAHINS, C. A. L.; POZZER, C. T. SCV: uma ferramenta para programação de aplicativos de interfaces gráficas. Jornada Acadêmica Integrada da Universidade Federal de Santa Maria. Santa Maria, Santa Maria, RS, BR, 2010.

AVELAR, F. T.; GOMES, V. C. F.; POZZER, C. T. Estudo Comparativo de Bibliotecas Gráficas Integradas com OpenGL. XXII Congresso Regional de Iniciação Científica e Tecnológica em Engenharia - CRICTE, Passo Fundo, RS, 2007.

AVELAR, F. T.; GOMES, V. C. F.; POZZER, C. T. Estudo Comparativo de Bibliotecas Gráficas Integradas com OpenGL. XXII Congresso Regional de Iniciação Científica e Tecnológica em Engenharia - CRICTE, Passo Fundo, RS, 2007.