Code Monkey home page Code Monkey logo

softart's Introduction

Project build guide

1. Requirements
  * Windows 7 or later
    * Visual Studio 2012 update 4 or later version.
	* Boost 1.55 or later. Please use boost 1.56 if your compiler is Visual Studio 2013.
	* Python 2.7.
	* CMake 2.8.10 or later.
  * Linux
    * Mint 16 and Mint 17 were tested.
	* GCC 4.7 or later.
	* Boost 1.55 or later.
	* Python 2.7.
	* CMake 2.8.10 or later.
	
2. Build steps
  * Run build_all.py which is located at root of project.
  * If it is the first run of build_all.py, an configuration file "proj.py" will be generated.
  * Edit proj.py after read the comments of the file.
  * If build tool is visual studio, vs solution file will be generated in sub folder of 'build'.
 
3. REMARK
  * Each configuration was built once build_all.py was run. But visual studio supports multiple configuratoin in one project. You should modify proj.py and execute build_all.py with different configuration, such as RelWithDebInfo or Debug. 
  
If you have any questions, please contact:

wuye9036 _at_ gmail _dot_ com

----------------------------

如果您是**用户,您可以从OSChina的Git托管站点上下载:

https://git.oschina.net/wuye9036/SALVIA.git

首先请确认您的机器上具有:

Windows平台:
1. Visual Studio 2012 Update 4;
2. Boost 1.55 或以上版本。如果你使用Visual Studio 2013请使用Boost 1.56或以上;
3. Python 2.7;
4. CMake 2.8.10或以上版本,如果使用Visual Studio 2013请使用对应的CMake版本;

Linux平台:

1. GCC 4.7或以上版本;
2. Boost 1.55或以上版本;
3. Python 2.7;
4. CMake 2.8.10或以上版本。

运行build_all.py文件。如果您是首次运行该脚本,它会生成proj.py文件。
打开proj.py文件,阅读说明并修改配置。
再次运行build_all.py,便可以等待其直到编译结束。
如果您使用的是Visual Studio,sln文件会生成在您指定的 build_root 的目录下。

注意事项:

和Visual Studio默认的多配置工程不同,脚本一次只会编译一个配置(Debug, RelWithDebInfo等等)。
如果需要在工程文件中自由切换配置,需要您多次修改proj.py中的config并执行build_all.py,随后您就可以在Solution中自由切换Configuration并编译了。

如果您有任何疑问或建议,请邮件至:

wuye9036 _at_ gmail _dot_ com

softart's People

Contributors

gongminmin avatar wuye9036 avatar zhoub avatar

Watchers

 avatar

softart's Issues

create plane不同的参数渲染不正确

SampleWindow底部的plane,把创建参数改成如下,会出现如图的bug
:

        planar_mesh = create_planar(
            hsr.get(), 
            vec3(-3.0f, -1.0f, -3.0f), 
            vec3(6, 0.0f, 0.0f), 
            vec3(0.0f, 0.0f, 6),
            1, 1, true
            );
原来的参数是
        planar_mesh = create_planar(
            hsr.get(), 
            vec3(-3.0f, -1.0f, -3.0f), 
            vec3(0.5f, 0.0f, 0.0f), 
            vec3(0.0f, 0.0f, 0.5f),
            20, 20, true
            );
原来是20*20个矩形共800个三角形组成一个平面。改成2个三角��
�组成一个平面后出现如图的bug

Original issue reported on code.google.com by [email protected] on 14 Mar 2010 at 10:47

Attachments:

Python Support

Write a python wrapper for softart.

Original issue reported on code.google.com by wuye9036 on 31 Aug 2010 at 3:17

Constant expression llvm code generation support

Constant expression could be translated to llvm value tree.
In this issue, we need implements following things:

 - Semantic analysis:
  - Make sure the expression is a constant expression. Now we need support literal constant and expression composited by it only. Constant variable consider later.
  - Translate value to llvm supported, and save them in a instance of class "constant semantic info"

 - Code generation:
  - translate literal constant value to llvm::Value object, and construct the expression tree.

 - Write test about it.

And the type of literal constant we only support int32 & uint32.
More types support will be added later.

Original issue reported on code.google.com by wuye9036 on 20 Sep 2010 at 4:37

Isolate presenters into dll projects

Current presenters are used by #ifdef. It'll be too complex if more
presenters are added. Put one presenter into a DLL project and loads at
runtime can solve this problem.

Original issue reported on code.google.com by minmin.gong on 18 May 2010 at 9:31

SystemInfo.cmake does not set GCC_VERSION on UNIX

Hi,

I ported your idea of SystemInfo.cmake to SOCI project
(here is my version 
https://github.com/denisarnaud/soci/blob/master/src/cmake/SociSystemInfo.cmake)
and I notice that GCC_VERSION variable is not set on Unix.

This variable is used in line 58

http://code.google.com/p/softart/source/browse/trunk/sasl/build/cmake/SystemInfo
.cmake?r=368#58

but GCC is queried for version only for MinGW in line 40:

http://code.google.com/p/softart/source/browse/trunk/sasl/build/cmake/SystemInfo
.cmake?r=368#40

Simply, it only needs to move the exec_program from if(MINGW) somewhere at the 
top of the script and change the condition to if(MINGW OR UNIX).

Also, this

... "gcc-"${GCC_VERSION})

should read

"gcc-${GCC_VERSION}")

otherwise there is a space between hyphen and version number.

Thanks for the very nice idea of this script!

Original issue reported on code.google.com by mloskot on 24 Dec 2010 at 1:41

Memory Leaks


While the tile_size changed from 256 to 32, the memory usage will
improvement very quickly( about 100 MB per second ).

maybe there are some memory leaks on clipping.


Original issue reported on code.google.com by wuye9036 on 15 Apr 2010 at 11:08

CMake can not works correctly under vs 2010


user file of vs2010 was changed from vs200x. so the corresponding cmake
section as following may be updated.

function(ogre_create_vcproj_userfile TARGETNAME)
  if (MSVC)
    configure_file(
      ${CMAKE_HOME_DIRECTORY}/cmake/VisualStudioUserFile.vcproj.user.in
      ${CMAKE_CURRENT_BINARY_DIR}/${TARGETNAME}.vcproj.user
      @ONLY
    )
  endif ()
endfunction(ogre_create_vcproj_userfile)

otherwise the debugging target is wrong.

and another question is that the rc file is not included in the project. It
is so strange... But we will need a solution yet.

Thanks for attention.

Original issue reported on code.google.com by wuye9036 on 15 Apr 2010 at 6:25

Add type conversation support

Add type conversation support to llvm code generation and semantic analysis.

First, we will implement type conversation between sasl buildin types.
Int-Int conversation is good for starting.

Original issue reported on code.google.com by wuye9036 on 23 Sep 2010 at 6:10

Add buildin type conversations


1. buildin scalar type conversations.
2. buildin vector/matrix type conversations.
3. customized type conversations.

Original issue reported on code.google.com by wuye9036 on 25 Sep 2010 at 10:37

D3D10 style state objects

DepthStencil state, Sampler state, Blend state and Rasterizer state should
be modified to D3D10 style.
1. Each state object have responding a desc struct.
2. A state object can't be changed after its inited by the desc struct.

Original issue reported on code.google.com by minmin.gong on 21 Apr 2010 at 6:56

Add buildin type support to llvm code generation

We need to translate buildin_type to llvm::Type*.

Two steps we work with issue:
1. Translate buildin types which is correspond to llvm basic types.
2. Translate complex types.

PARENT Issue 22

Original issue reported on code.google.com by wuye9036 on 20 Sep 2010 at 8:35

Add basic function support to llvm code generation

We can do it as following steps:
  1. Add a function w/o parameter and void return type.
  2. Change the function sig to return a integer.
  3. Return a constant integer. Before do it, we need a jit tester.
  4. Add parameter a and b, return a + b. a & b are integers.
  5. Do other things. We will create another branch to do it.

Original issue reported on code.google.com by wuye9036 on 16 Sep 2010 at 8:56

Anti-alias support

Supports MSAA, SSAA, CSAA. Sampling pattern is customable. 

Original issue reported on code.google.com by minmin.gong on 2 Jun 2010 at 3:39

Generate SIMD code

generated code can simulate SIMD execution.

Original issue reported on code.google.com by wuye9036 on 31 Aug 2010 at 3:10

Determine the name of this project & design a logo series

I found that the current name of this project is not search-engine friendly. I 
think we need a new name before the first release of this project.
If you have any idea, please let me know, via email or comment on this issue.

Following tips may help you:
  - It's a high frequenty used word in english or other latin language;
  - Less than 10 characters;
  - Nouns or Adjective + Nouns is better;
  - Prefer to concrete things in real world, or a common concept for logo design;
  - Implicit or explicit related to color, drawing or rendering concept is a good idea.

Thank you for paticipation, and don't hesitate to ask me if you have any 
question or advise.

Original issue reported on code.google.com by wuye9036 on 20 Sep 2010 at 3:16

透明盒子物件渲染时三角形的渲染顺序不定

一个透明方盒子,前面和后面的三角形就是互相重叠的
透明box渲染的时候,有些三角形一时后面的在前,有些三角��
�一时前面的在前。

revision 
94的SampleWindow在多线程渲染模式下编译后可以重现这个现象。

Original issue reported on code.google.com by [email protected] on 15 Mar 2010 at 5:25

光栅化的bug

当三角形在近剪裁面的前面和后面时,会导致这个三角形要��
�不可见,要么颜色不正确。

Original issue reported on code.google.com by [email protected] on 13 Mar 2010 at 4:15

当多个box被渲染时,会导致pool分配内存当机

softart\eflib\include\pool.h
这个类中的recycled_pool,分配内存会当机。
重现方法,用SampleWindow渲染10次box:

        for(float i = 0 ; i < 10 ; i ++)
        {
            mat_translate(world , -0.5f + i * 0.5 , 0 , -0.5f 
+  i * 0.5);
            mat_mul(wvp, mat_mul(wvp, proj, view), world);
            pvs->set_constant(_T("WorldViewProjMat"), &wvp);
            box_mesh->render();
        }

Original issue reported on code.google.com by [email protected] on 13 Mar 2010 at 4:17

Create a jit engine for test

JIT engine is need for testing generated code.
It is the prototype, and prefer to be reused in SASL JIT Engine.


Original issue reported on code.google.com by wuye9036 on 21 Sep 2010 at 6:50

Add function name mangling

Add function name mangling to semantic analysis.

PARENT Issue 41

Original issue reported on code.google.com by wuye9036 on 25 Sep 2010 at 10:33

GDI+ presenter doesn't work

new Bitmap returns NULL.

Original issue reported on code.google.com by minmin.gong on 24 Apr 2010 at 12:20

Add LLVM code generation to parameter

1. Add semantic analysis to parameter & test it.
2. Add code generation to parameter & test it.

Original issue reported on code.google.com by wuye9036 on 21 Sep 2010 at 3:02

Anistropic Filtering support

Supports Anistropic Filtering (AF). The best choise currently is EWA-based AF.

Original issue reported on code.google.com by minmin.gong on 2 Jun 2010 at 3:41

Not-our-issue: rc is marked as "Does not participate in build"

rc file is marked as "Does not participate in build" in VS2010 project.
It's a cmake issue. All rc files should be selected as "Resource Compiler"
in "Item type" manually.

Original issue reported on code.google.com by minmin.gong on 16 Apr 2010 at 6:37

纹理采样多线程不安全

当使用tex2d函数时,会导致光栅化在多线程当机。发现 
rasterizer::rasterize_triangle_impl中有如下代码
    // TODO: This is not thread safe
    hps_->ptriangleinfo_ = &info;

Original issue reported on code.google.com by [email protected] on 13 Mar 2010 at 2:18

SASL's syntax tree combinator

syntax tree combinator is a generator for creating a syntax tree manual.
And semantic action invoked by parser can use it also.

Original issue reported on code.google.com by wuye9036 on 30 Aug 2010 at 8:24

Code generation

Generate platform-dependent code from syntax tree.

Original issue reported on code.google.com by wuye9036 on 31 Aug 2010 at 3:09

Refactory test case organization

Since better reuse, we refactory structure of code related to test cases.
Now tests be composited by 2 parts.
1. test configuration and data files located in test/test_resources.
2. objects we want to test. it is located in path test/test_cases.
3. test suites. one test suite is organized by an project. located in 
test/<test_project_name>
4. regression test. regression test includes all tests. It should be executed 
when regressing or integration. the code is in test/regression_test.

Original issue reported on code.google.com by wuye9036 on 17 Sep 2010 at 12:24

Constant expression llvm code generation support (1)

Constant expression could be translated to llvm value tree.
In this issue, we need implements following things:

 - Semantic analysis:
  - Make sure the expression is a constant expression. Now we need support literal constant and expression composited by it only. Constant variable consider later.
  - Translate value to llvm supported, and save them in a instance of class "constant semantic info"

 - Code generation:
  - translate literal constant value to llvm::Value object, and construct the expression tree.

 - Write test about it.

And the type of literal constant we only support int32 & uint32.
More types support will be added later.

Original issue reported on code.google.com by wuye9036 on 20 Sep 2010 at 4:38

  • Merged into: #36

Complete variable declaration translation code of syntax tree builder

Overall, four parts need to be implemented.

1. Statements,
2. Delcarations,
3. Type specifiers,
4. Expressions.


But we want to complete declaration translation first.

And corresponded tests need to added into test cases.





Original issue reported on code.google.com by wuye9036 on 25 Jan 2011 at 1:06

SASL Compiler API

Design and impl API for code compilation and JIT.

Original issue reported on code.google.com by wuye9036 on 31 Aug 2010 at 3:12

Migrate semantic test for new implementation

The semantic tests have to be migrated to fit semantic analysis.

The origin version semantic was extracted from syntax node,
and in new version, the semantic must get from symbol.
So symbol tests are pre-requried by others.

Original issue reported on code.google.com by wuye9036 on 15 Dec 2010 at 5:40

Add function overload mechanism

Function overload is the base of type promotion.

We need 2 mechanisms to support it:

1. Type implicit conversation
2. Name mangling

Following steps are possible way to implement it:

1. Implement name mangling.
2. Implenent implicit type conversation. It is also the sub-part of type 
conversation.
3. Write code for function prototype chosen.

Original issue reported on code.google.com by wuye9036 on 25 Sep 2010 at 10:32

Semantic Analysis

Finish semantic anaysis of softart.

Original issue reported on code.google.com by wuye9036 on 31 Aug 2010 at 3:07

SASL API for shader user

Add softart shader stages API

Original issue reported on code.google.com by wuye9036 on 31 Aug 2010 at 3:15

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.